我正在试图找出一种方法,将包含数据列的大型txt文件拆分为较小的文件以进行上传。大文件有4000行,我想知道是否有办法将它分成四个部分,如
file 1 (lines 1-1000)
file 2 (lines 1001-2000)
file 3 (lines 2001-3000)
file 4 (lines 3001-4000)
我很感激帮助。
答案 0 :(得分: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 docs中的建议,在open
区块中使用with
。
答案 1 :(得分:0)
尝试一下:
fhand = open(filename, 'r')
all_lines = fhand.readlines()
for x in xrange(4):
new_file = open(new_file_names[x], 'w')
new_file.write(all_lines[x * 1000, (x + 1) * 1000])
答案 2 :(得分:0)
我喜欢Aleksander Lidtke的,但有一个for循环和一个pop()扭曲的乐趣。我也喜欢在我这样做的时候维护一些原始命名的文件,因为它通常是多个文件。所以我在其中添加了名称“split”。
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))