アップロードの目的で、データの列を含む大きな txt ファイルを小さなファイルに分割する方法を見つけようとしています。大きなファイルは4000行あり、4つの部分に分割する方法があるかどうか疑問に思っています.
file 1 (lines 1-1000)
file 2 (lines 1001-2000)
file 3 (lines 2001-3000)
file 4 (lines 3001-4000)
助けてくれてありがとう。
アップロードの目的で、データの列を含む大きな txt ファイルを小さなファイルに分割する方法を見つけようとしています。大きなファイルは4000行あり、4つの部分に分割する方法があるかどうか疑問に思っています.
file 1 (lines 1-1000)
file 2 (lines 1001-2000)
file 3 (lines 2001-3000)
file 4 (lines 3001-4000)
助けてくれてありがとう。
これは機能します (ループ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
ブロックで使用してみてください。
私は 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))