Python 按行将文件拆分为较小的文件

Python 按行将文件拆分为较小的文件,python,python-2.7,Python,Python 2.7,我正试图找到一种方法,将一个包含数据列的大txt文件拆分为较小的文件,以便上传。这个大文件有4000行,我想知道是否有办法将它分成四个部分,例如 file 1 (lines 1-1000) file 2 (lines 1001-2000) file 3 (lines 2001-3000) file 4 (lines 3001-4000) 我感谢你的帮助 试试看: fhand = open(filename, 'r') all_lines = fhand.readlines() for

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

file 1 (lines 1-1000)

file 2 (lines 1001-2000)

file 3 (lines 2001-3000)

file 4 (lines 3001-4000)
我感谢你的帮助

试试看:

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])
这是可行的(您可以为实现一个
,而不是
while
循环,但它没有什么区别,并且不假设需要多少文件):

以open('longFile.txt',r')作为f的
:
行=f.读行()
阈值=1000
fileID=0

虽然fileID我喜欢Aleksander Lidtke的,但它有一个for循环和一个pop()twist来取乐。当我这样做的时候,我还喜欢保持一些文件的原始命名,因为它通常用于多个文件。所以我在里面加了“拆分”这个名字


你在这里找什么?在这些行中迭代。在这样做的时候数数。输出到缓冲区。在第1001行关闭文件编写器。重复冲洗。如果您使用linux,您可以使用如下简单的
split
命令:
split-l1000 file.txt
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
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))