将文件除以PYTHON文件的第一列
我有以下类型的file.txt文件将文件除以PYTHON文件的第一列,python,file,Python,File,我有以下类型的file.txt文件 65000 data1 data2 data3 65000 data1 data2 data3 . . . 65000 data1 data2 data3 65001 data1 data2 data3 . . . 65001 data1 data2 data3 对于每个参数,第一列的行数(第一个数字相同)是不同的,因此我不能使用简单的参数n=25作为示例 enter code here`lines_per_file = 69 shortfile = No
65000 data1 data2 data3
65000 data1 data2 data3
.
.
.
65000 data1 data2 data3
65001 data1 data2 data3
.
.
.
65001 data1 data2 data3
对于每个参数,第一列的行数(第一个数字相同)是不同的,因此我不能使用简单的参数n=25作为示例
enter code here`lines_per_file = 69
shortfile = None
with open('longfile.txt') as longfile:
for lineno, line in enumerate(longfile):
if lineno % lines_per_file == 0:
if shortfile:
shortfile.close()
short_filename = 'small_file_{}.txt'.format(lineno + lines_per_file)
shortfile = open(short_filename, "w")
shortfile.write(line)
if shortfile:
shortfile.close()
如何将此文件分割为多个较小的文件?执行此操作
lines = 0
shortfile = None
with open('longfile.txt') as longfile:
for lineno, line in enumerate(longfile):
new_lines = line.split(' ')[0]
if lines != new_lines:
lines = new_lines
if shortfile:
shortfile.close()
short_filename = 'small_file_{}.txt'.format(lines)
shortfile = open(short_filename, "w")
shortfile.write(line)
if shortfile:
shortfile.close()
这将导致每当新编号出现在前面时,就会创建一个新行文件您可以创建文件块并将其写入单独的文件中。我猜您没有解决OP代码的其他各种问题,但您自己引入了一个错误:
new_num
应该是new_行
(或反之亦然)。@PM 2Ring感谢您的输入错误,不,我想/希望这会让他走上正确的道路,因为他的问题非常模糊。非常好的代码。thx:)@user4252332:user2097159已经回答了您的问题,并修复了short_filename
的名称创建,但代码仍然存在其他各种问题,特别是,现在无用的枚举
。另外,代码顶部的lines=0
可能会比lines=None
更好。实际上,使用一些更有意义的变量名,而不是行
和新行
,例如旧行
和新行
,代码会更容易理解。