簡體   English   中英

通過將參數作為變量傳遞來從另一個python文件執行python文件

[英]Execute python file from another python file by passing argument as variable

在下面的代碼中,我試圖獲取路徑名(包括文件名)並將其轉換為帶有文本文件的另一個路徑名。

現在,我想將兩個變量都作為參數傳遞給另一個py,它將把它作為參數

import os

thisdir=[os.path.join(r,file) for r,d,f in 
os.walk("C:\\Users\\vnitin\\OneDrive - NetApp Inc\\IDP\\Files\\") for file 
in f]
for i in range(len(thisdir)):
    text_path = thisdir[i].replace('pdf', 'txt')
    print(text_path)
    os.system('py pdf2txt.py -o text_path thisdir[i]')

但是pdf2txt.py的單獨命令效果很好。

py .\pdf2txt.py -o 'C:\Users\vnitin\OneDrive - NetApp Inc\IDP\Files\11.txt'  
'C:\Users\vnitin\OneDrive - NetApp Inc\IDP\Files\11.pdf'

由於在執行期間thisdir[i]不會轉換為它的值,因此錯誤No such file or directory

os.system('py pdf2txt.py -o text_path thisdir[i]')替換為

os.system("python ./pdf2txt.py -o {0} {1}".format(text_path,thisdir[i]))

兩種解決方案:1)您可以直接導入並使用params調用main方法

data = pdf2txt.main(['pdf2txt.py',filename])

要么

2)形成字符串並將其作為命令傳遞

    string ="py .\pdf2txt.py -o" +" C:\Users\vnitin\OneDrive - NetApp Inc\IDP\Files\11.txt"+" C:\Users\vnitin\OneDrive - NetApp Inc\IDP\Files\11.pdf"

使用子流程模塊

import subprocess
subprocess.Popen("python ./pdf2txt.py -o {0} {1}".format(text_path,thisdir[i])", shell=True)

現在,還可以重定向stdin,stdout和stderr。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM