0

我试图找出一种方法将带有数据列的大 txt 文件拆分为较小的文件以供上传。大文件有4000行,我想知道是否有办法将它分成四个部分,例如

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 文档中的建议在块中open使用。with

于 2013-07-30T19:13:30.800 回答
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])
于 2013-07-30T18:47:12.500 回答
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))
于 2013-07-30T20:20:35.863 回答