Subprocess.call外部程序

问题描述 投票:0回答:1

[我在网上找到了一个脚本,可以将文件从一个特定的扩展名转换为另一个扩展名,我正在尝试利用subprocess.call,但到目前为止还没有运气。

我正在尝试使用subprocess.call转换目录中的文件。我成功地在终端中执行了此操作,现在尝试作为程序的一部分在python中执行此操作。

关于参数,我给'python'脚本的名称,我要转换的文件,然后在转换后使用新名称。

subprocess.call(["python", "converter.py", "file1.txt", ">", "file1converted.xml"])

我以正确的方式使用subprocess.call吗?我似乎找不到任何方法来执行我要执行的操作,如果可能的话,我也想找到一种方法来转换文件,而无需在转换后指定新名称,而是使用更改将“ file1.txt”更改为“ .xml”。

python
1个回答
0
投票

有两种方法,第一种是您执行的方法,但应在参数中添加shell=True。如果shell命令来自外部,请勿使用shell=True,因为这将带来巨大的安全风险

subprocess.call(["python", "converter.py", "file1.txt", ">", "file1converted.xml"], shell=True)

另一种方法是利用我个人更喜欢的Popen

subprocess.Popen(["python", "converter.py", "file1.txt", ">", "file1converted.xml"])
© www.soinside.com 2019 - 2024. All rights reserved.