问题描述
我正在编写python脚本,但是可以在批处理脚本中执行相同的操作来替换行字符串。我有一个目录,里面只有几个文件,而在另一个目录中有一个file.json。我想用其他目录中文件的完整路径替换file.json中的一行。即每次都会用文件路径列表覆盖该行。
代码:
import shutil
import re
import os
origin_path = '/home/download/project/'
Source_files='/home/download/automate_proj/file.json'
target_file = /tmp/file.json
for file in os.listdir(origin_path):
for f in file:
f = open(file,'r')
for line_org in f.read():
shutil.copy(line_org)
with open(source_file,'r') as sfile:
with open(target_file,'w') as outfile:
for line in sfile:
if "FILE PATH PLACEHOLDER" in line:
line = line.replace('FILE PATH PLACEHOLDER',line_org)
outfile.write(line)
print "DONE"
示例,目录及其文件
$ pwd
/home/download
/home/download/new.txt
/home/dowload/new1.txt
/home/download/new2.txt
/home/download/new3.txt
示例:
file.json
"dataSchema" : {
"dataSource" : "FILE PATH PLACEHOLDER","parser" : {
"format" : "json"
}
}
因此,我希望每次运行代码时,使用目录中文件路径的列表替换或覆盖file.json行“ FILE PATH PLACEHOLDER”。
预期结果
"dataSource": "/home/downloads/new.txt"
下一个循环运行将是:
"dataSource": "/home/downloads/new1.txt"
"dataSchema" : {
"dataSource" : "/home/downloads/new2.txt","parser" : {
"format" : "json"
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)