因此,我使用它来替换文件中的文本odirx
,然后将其写入另一个文件。但我希望输出文件名也是sm_0120.txt
而不是sm_template2.txt
。
replacements = {'odirx':'0120'}
with open('/dir/sm_template.txt') as infile, open('/dir/sm_template2.txt', 'w') as outfile:
for line in infile:
for src, target in replacements.items():
line = line.replace(src, target)
outfile.write(line)
我该怎么做?
它可以在读完后写出整个文件,但我想在不读取整个文件的情况下这样做
相关: replacing text in a file with Python
TRIAL
如果这是我唯一的选择,我还可以阅读
replacements = {'odirx':'0120'}
with open('/dir/sm_template.txt') as infile, open('/dir/sm_template2.txt', 'w') as outfile:
for line in infile:
for src, target in replacements.items():
line = line.replace(src, target)
lines.append(line)
outfile = os.path.join(os.path.normpath(os.getcwd()+os.sep+"sm_"+os.sep+target+os.extsep+"txt"))
我怎么写出来?
答案 0 :(得分:0)
不幸的是,您必须编写一个新文件,因为您将其作为流的一部分进行修改,没有办法解决这个问题
虽然澄清,但确实存在复制文件https://stackoverflow.com/a/123212/1699398
的功能答案 1 :(得分:0)
使用os.rename:
os.rename('/dir/sm_template2.txt', '/dir/sm_0120.txt')