import os
target_dir = "xxx.xxx.xx.xx/path/to/file/dir"
start_seq = "*** Start Sequence ***"
end_seq = "*** End Sequence ***"
def tp_parser(file):
with open(file) as in_f:
lines = in_f.readlines()
f_name = in_f.name[12:16]
for i, line in enumerate(lines):
if line.startswith(start_seq):
start_line = i
elif line.startswith(end_seq):
end_line = i
with open("{0}_Target_Map.txt".format(f_name), "w") as out_f:
for i, line in enumerate(lines):
if start_line <= i < end_line:
print(line)
# out_f.write(line)
for file in os.listdir(os.chdir(target_dir)):
tp_parser(file)
我编写了这个脚本来查看文件目录,提取每个文件的特定部分并将其写入单独的文本文件。好奇是否有人可以对这里发生的事情有所了解...
对于这部分:
if start_line <= i < end_line:
print(line)
# out_f.write(line)
如果我使用 print(line) 运行脚本,我会返回“UnboundLocalError: local variable 'end_line' referenced before assignment”错误。但是,使用 out_f.write(line) 运行脚本可以按预期工作。
第二个稍微不那么烦人的问题是这部分:
for file in os.listdir(os.chdir(target_dir)):
tp_parser(file)
我无法向自己解释为什么我必须切换到工作目录(即 os.chdir(target_dir))来实际遍历文件。我知道 os.listdir() 本身会返回一个文件名列表,但是如果您在 os.listdir() 中传递 os.chdir() 参数,那有什么不同。
提前致谢。