将文件中的行字符串替换为目录中文件路径的循环列表

问题描述

我正在编写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 (将#修改为@)