我正在努力完成看似简单的任务,但我似乎无法弄明白。我是一名Python菜鸟。
这是我的任务:
我有一个文本文件,其中包含一个数字列表,每个都在一个单独的行...
100101
100201
100301
100401
100501
100601
100701
100801
100901
101001
我想要做的是从文本文件中读取并为包含该行的文件中的每一行写一个新的文本文件,并使用该行命名...
100101.txt
contains one line of text "100101"
100201.txt
contains one line of text "100201"
etc...
希望这有意义......谢谢!
hjnathan
答案 0 :(得分:6)
试试这个:
with open('data.txt') as inf:
for line in inf:
num = line.strip()
if num:
fn = '%s.txt' %num
with open(fn, 'w') as outf:
outf.write('contains one line of text "%s"\n' %num)
使用with
构造确保每个文件在不再需要时(或者如果发生异常)关闭
答案 1 :(得分:3)
编辑:使用with
使执行更安全。
lines = open(your_file, 'r')
for line in lines.readlines():
with open(str(line).rstrip()+'.txt','w') as output_file
output_file.write(line)
lines.close()
答案 2 :(得分:2)
请注意,以下内容不会检查具有相同名称的预先存在的文件。
with open('numbers_file.txt','r') as numbers:
for line in numbers:
with open(line.rstrip() + '.txt','w') as new_file:
new_file.write(line)