Python subprocess.call,带有变量替换

时间:2012-12-17 18:26:58

标签: python

守则:

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_LOCATIONMOST_POPULAR_REPORTS_FILE之间放置一个/?我尝试了各种组合但没有成功。

我想要的是将两个变量与/分开,以便通过使用变量替换来读取/tmp/filename.xml。我不想对整个脚本中使用的路径或文件名进行硬编码。

1 个答案:

答案 0 :(得分:1)

使用os.path.join

subprocess.call(["/bin/cp", "-a",
    os.path.join(MOST_POPULAR_REPORTS_LOCATION, MOST_POPULAR_REPORTS_FILE), 
        TEMP_DATA_FILE_LOCATION])

您不应该将变量名称放在引号中,否则您将获得字符串文字。这不是shell。