通过将参数作为变量传递,从另一个python文件执行python文件

时间:2018-04-09 08:48:07

标签: python pdfminer

在下面的代码中,我试图获取路径名(包括文件名)并将它们转换为带有文本文件的另一个路径名。

现在我想将两个变量作为参数传递给另一个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'

3 个答案:

答案 0 :(得分:1)

由于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 :(得分:0)

两种解决方案: 1)您可以使用参数

直接导入和调用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"

答案 2 :(得分:0)

使用SubProcess module

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

现在,stdin,stdout和stderr也可以被重定向。