如何从Python脚本运行其他程序?

-2 投票
3 回答
1013 浏览
提问于 2025-04-18 15:03

这是我目前写的代码

from subprocess import call
call("/Users/oscar/Desktop/Controlled Assessment/Currency Converter.py")

当我运行它的时候,出现了这个错误信息

Traceback (most recent call last):
  File "/Users/oscar/Desktop/Controlled Assessment/ISBN Checker.py", line 10, in <module>
    call("/Users/oscar/Desktop/Controlled Assessment/Currency Converter.py")
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/subprocess.py", line 470, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/subprocess.py", line 744, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/subprocess.py", line 1394, in _execute_child
    raise child_exception_type(errno_num, err_msg)
OSError: [Errno 8] Exec format error

3 个回答

0

检查一下你脚本里的解释器指令。

它应该以以下内容开头:

#!/usr/bin/env python

print 'your python script...'

这意味着当你直接运行这个脚本时,它会被 Python 程序来解释。

你可以在这里获取更多信息:http://en.wikipedia.org/wiki/Shebang_(Unix)

0

使用 subprocess.Popen

import sys, subprocess
subprocess.Popen([sys.executable, "myscript.py"])

这样可以在Python命令行中运行 myscript.py

2

看起来你想要执行另一个Python脚本,为什么不直接把它导入呢?

import Currency_Converter 

然后在里面运行你想要的模块?把文件名中的空格去掉,换成下划线就可以了。

撰写回答