如何 set/define/use sys.argv

How to set/define/use sys.argv

我是 Python 的新手,所以请多多包涵。

目前,我在 Pycharm 上的 Anaconda 环境中使用 Python 3.5,我正在尝试了解如何 set/define/use sys.argv 以便我可以在将我的更改上传到 github.

之前自动化几个过程

例如:

python function/function.py input_folder/input.txt output_folder/output.txt

这意味着 function.py 将从 input_folder 中获取 input.txt,应用 function.py 中编写的任何脚本,并将结果存储到 output.txt 文件夹中output_folder.

但是,当我在终端中键入此内容时,出现以下错误:

python: can't open file 'function/function.py': [Errno 2] No such file or directory

然后,在 Python 控制台中输入 sys.argv,我收到以下信息:

['C:\Program Files (x86)\JetBrains\PyCharm 2016.2\helpers\pydev\pydevconsole.py',
 '53465',
 '53466']

我的猜测是,如果我正确设置 sys.argv[0:1],那么我应该能够将 function.py 应用到 input.txt 并将结果存储到 output.txt

我已经尝试定义这些目录,但它们不起作用。任何帮助都会很棒!

你的问题是 python 不知道函数目录在哪里。如果您正尝试 运行 来自子目录的脚本,例如

function
|_function.py
| 
input_folder
|_input.txt 
|
|output_folder
|_output.txt

你必须告诉python函数文件夹是本地的,所以

python ./function/function.py ./input_folder/input.txt ./output_folder/output.txt

python $PWD/function/function.py $PWD/input_folder/input.txt $PWD/output_folder/output.txt

$PWD 是一个 bash 变量,它给出了当前目录