【发布时间】:2017-01-16 09:14:15
【问题描述】:
我有几百个大文件(基于行号)。 我正在尝试使用循环编写代码。 首先循环读取文件夹中的大文件, 其次,它将创建一个与它正在读取的文件名相同的文件夹 最后,它将在创建的同一文件夹中分割文件。 此循环应遍历文件夹中存在的所有大文件。 我的代码如下:
import glob
import os
os.chdir("/test code/")
lines_per_file = 106
sf = None
for file in glob.glob("*.TAB"):
with open(file) as bigfile:
for lineno, line in enumerate(bigfile):
if lineno % lines_per_file == 0:
if sf:
sf.close()
sf_filename = '/test code/201511_sst/sf_{}.txt'.format(lineno + lines_per_file)
sf = open(sf_filename, "w")
sf.write(line)
if sf:
sf.close()
我得到如下输出:
In [35]: runfile('/test code/file_loop_16Jan.py', wdir='/test code')
In [36]:
我需要一些关于循环文件的指导,以便我可以实现它。我认为没有错误意味着我错过了一些东西! 请任何人都可以帮助我!
【问题讨论】:
-
*.txt输出文件中是否写入了任何内容? -
你设置了
sf = None并且不要在if sf行之间修改它,所以最后几行永远不会被调用。 -
第一次循环,
sf是真还是假? -
1) 是的,大文件必须在大文件的每 106 行之后拆分并放入 sf_{} 文件中。
-
2) 正如我所提到的,我想一次循环所有大文件,然后拆分它。新文件(sf_{} 命名)将保存在大文件名称的文件夹中。我正在努力的那个循环!哎呀!