我在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()
。有人能指出我正确的方向吗?谢谢!
答案 0 :(得分:4)
你不能在python本身内运行python脚本。
您需要从命令行启动脚本:
python script.py file1.txt file2.txt file3.txt
答案 1 :(得分:2)
使用命令提示符或Bash shell。
执行。
python scriptName.py < Space Seperated Arguments >
答案 2 :(得分:1)
从提示符处看起来好像您正在尝试从Python解释器中运行脚本,即您正在键入python
,然后在python >>>
提示符下输入您的脚本名称和参数。该提示旨在以交互方式键入实际的Python命令。
如果你退出Python解释器并在正常的shell提示符下输入你的脚本名称和参数,那就行了(只要你有#!/usr/bin/python
作为你脚本的第一行)。
答案 3 :(得分: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")