代码:
MOST_POPULAR_REPORTS_LOCATION = '/tmp'
MOST_POPULAR_REPORTS_FILE = 'filename.xml'
TEMP_DATA_FILE_LOCATION = '/tmp/other_location'
subprocess.call(["/bin/cp","-a","MOST_POPULAR_REPORTS_LOCATION MOST_POPULAR_REPORTS_FILE","TEMP_DATA_FILE_LOCATION"])
我应该在 MOST_POPULAR_REPORTS_LOCATION
和 MOST_POPULAR_REPORTS_FILE
之间放置什么来放置 /
?我尝试了各种组合但没有成功。
我想要的是用 /
分隔两个变量,以便它通过使用变量替换来读取 /tmp/filename.xml
。我不想对路径或文件名进行硬编码,因为它们在整个脚本中使用。
最佳答案
使用os.path.join
:
subprocess.call(["/bin/cp", "-a",
os.path.join(MOST_POPULAR_REPORTS_LOCATION, MOST_POPULAR_REPORTS_FILE),
TEMP_DATA_FILE_LOCATION])
您不应将变量名称放在引号中,否则您将得到字符串文字。这不是 shell。
关于带变量替换的 Python subprocess.call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919875/