(Jun-24-2017, 05:22 AM)Tumppi Wrote:(Jun-23-2017, 08:19 PM)Ofnuts Wrote: This is the purpose of "functions"
Note that you are opening/closing all the files each time, if they are big the performance is going to be awful. You can open the target file once for all before calling the functions (replace parameter with its name with a parameter that hold the open file object). There is likely a simpler logic (fixed intervals) that allows you top open the two source files once for all, especially if they are always read/copied in the forward direction. In which case your code would just be a short loop.
Files are small, how it possible to repeat those lines where "w" and "d" values are with fixed values?
Look my last post, there are same cycle every 4 blocks after #4 command line...
You can create
tuples
that indicate what the ranges of lines are, and then iterate the tuples:def copyFileLines(fromFileName,toFileName,start,end): linesToCopy=range(start,end) with open(fromFileName) as fromFile, open(toFileName, 'a') as toFile: for i, line in enumerate(fromFile, 1): if i in linesToCopy: toFile.write(line) # use it: fileName1='file1.txt' fileName2='file2.txt' fileName3='file3.txt' lineRanges=(16,30,20,20),(36,52,42,42),(58,72,62,62),(78,94,84,84),(98,114,104,104) for start1,stop1,start2,stop2 in lineRanges: copyFileLines(fileName1,fileName3, w+start1,d+stop1) copyFileLines(fileName2,fileName3, w+start2,d+stop2)The
lineRanges
tuples can be values where d
and w
have already been added. And if there is some "logic" in the values you can compute them instead of entering them all by hand.
Unless noted otherwise, code in my posts should be understood as "coding suggestions", and its use may require more neurones than the two necessary for Ctrl-C/Ctrl-V.
Your one-stop place for all your GIMP needs: gimp-forum.net
Your one-stop place for all your GIMP needs: gimp-forum.net