我有一个结构如下的命令:
xrdcp "root://server/file?authz=ENVELOPE&Param1=Val1" local_file_path
问题在于,在命令行中应取消引用的文本中的ENVELOPE
它包含很多换行符
我无法使用repr,因为它将用\ n替换换行
而且,子进程似乎会自动对列表参数中的项目使用repr
在bash中,此命令通常与
一起运行
xrdcp "root://server/file?authz=$(<ENVELOPE)&Param1=Val1" local_file
那么,有一种方法可以在保留参数中的新行的同时运行命令?
谢谢!
后来编辑:
我的实际代码是:
envelope = server['envelope']
complete_url = "\"" + server['url'] + "?" + "authz=" + "{}".format(server['envelope']) + xrdcp_args + "\""
xrd_copy_list = []
xrd_copy_list.extend(xrdcp_cmd_list)
xrd_copy_list.append(complete_url)
xrd_copy_list.append(dst_final_path_str)
xrd_job = subprocess.Popen(xrd_copy_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = xrd_job.communicate()
print(stdout)
print(stderr)