1

コード:

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ます/か? さまざまな組み合わせを試しましたが、成功しませんでした。

私が望むのは、変数置換を使用/して読み取るように、2 つの変数を で区切ることです。/tmp/filename.xmlパスやファイル名はスクリプト全体で使用されるため、ハードコーディングしたくありません。

4

1 に答える 1

1

使用os.path.join

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

変数名を引用符で囲まないでください。引用符で囲むと、文字列リテラルが取得されます。これはシェルではありません。

于 2012-12-17T18:29:17.277 に答える