0

アップロードの目的で、データの列を含む大きな txt ファイルを小さなファイルに分割する方法を見つけようとしています。大きなファイルは4000行あり、4つの部分に分割する方法があるかどうか疑問に思っています.

file 1 (lines 1-1000)

file 2 (lines 1001-2000)

file 3 (lines 2001-3000)

file 4 (lines 3001-4000)

助けてくれてありがとう。

4

3 に答える 3

2

これは機能します (ループforではなくwhileループを実装できますが、ほとんど違いはなく、必要なファイル数を想定していません):

with open('longFile.txt', 'r') as f:
    lines = f.readlines()

threshold=1000
fileID=0
while fileID<len(lines)/float(threshold):
    with open('fileNo'+str(fileID)+'.txt','w') as currentFile:
        for currentLine in lines[threshold*fileID:threshold*(fileID+1)]:
            currentFile.write(currentLine)
        fileID+=1

お役に立てれば。python docsopenで提案されているように、withブロックで使用してみてください。

于 2013-07-30T19:13:30.800 に答える
0

私は Aleksander Lidtke のが好きですが、楽しみのために for ループと pop() ひねりを加えています。また、これを行うときは、通常は複数のファイルに付けられるため、一部のファイルの元の名前を維持することも好みます。そこで、「分割」という名前を付けました。

with open('Data.txt','r') as f:
    lines = f.readlines()

limit=1000
for o in range(len(lines)):
    if lines!=[]: 
        with open(f.name.split(".")[0] +"_" + str(o) + '.txt','w') as NewFile:
                for i in range(limit):
                    if lines!=[]:NewFile.write(lines.pop(0))
于 2013-07-30T20:20:35.863 に答える