0

我在我的 Mac(OS Lion)上的终端中的 Python 环境中。

python脚本包含以下几行,

def main():
    file1 = open(sys.argv[1])
    file2 = open(sys.argv[2])
    file3 = open(sys.argv[3])

我假设我需要通过执行以下操作来运行脚本:

script.py file1.txt file2.txt file3.txt

但我不断收到以下错误消息:

>>> process.py output1.txt output2.txt output3.txt
  File "<stdin>", line 1
    process.py output1.txt output2.txt output3.txt
                     ^
SyntaxError: invalid syntax

所有文件和脚本都在当前工作目录中(我检查了它import os,然后运行print os.getcwd()。有人能指出我正确的方向吗?谢谢!

4

4 回答 4

4

您不能从 python 本身运行 python 脚本。

您需要从命令行启动脚本:

 python script.py file1.txt file2.txt file3.txt
于 2013-05-13T20:30:10.213 回答
2

使用命令提示符或 Bash shell。

做。

python scriptName.py < Space Seperated Arguments >

于 2013-05-13T20:30:49.093 回答
1

如果您希望能够在 Python 中以编程方式使用您的脚本,只需对您的main函数稍作改动以接受参数即可。例如,

def main(*argv):
    file1 = open(argv[1])
    file2 = open(argv[2])
    file3 = open(argv[3])

if __name__ == "__main__":
    main(*sys.argv)

这为您提供了更大的灵活性,让您可以从命令行调用程序,也可以在以下程序中调用程序:

import process
process.main("output1.txt", "output2.txt", "output3.txt")
于 2013-05-14T03:48:05.360 回答
1

从提示中看起来好像您正在尝试从 Python 解释器中运行您的脚本,即您正在键入python,然后在 python>>>提示下您正在输入您的脚本名称和参数。该提示用于以交互方式键入实际的 Python 命令。

如果您退出 Python 解释器并在正常的 shell 提示符下输入您的脚本名称和参数,这将起作用(只要您有#!/usr/bin/python脚本的第一行)。

于 2013-05-13T20:32:47.533 回答