Pycharm和sys.argv参数

时间:2015-10-13 12:05:19

标签: python linux pycharm

我正在尝试调试一个以命令行参数作为输入的脚本。参数是同一目录中的文本文件。脚本从sys.argv列表中获取文件名。我的问题是我无法在pycharm中使用参数启动脚本。

我试图在“运行”>中的“脚本参数”字段中输入参数。 “编辑配置”菜单如下:

-s'file1.txt', -s'file2.txt'

但它没有用。如何使用参数启动脚本?

P.S。我在Ubuntu上

11 个答案:

答案 0 :(得分:88)

在PyCharm中,参数会像你一样添加到 Script Parameters 中,但它们用双引号括起来 ""并且没有指定解释器标志,如-s。这些标志在 Interpreter options 框中指定。

脚本参数框内容:

"file1.txt" "file2.txt"

Interpeter标志:

-s

或者,视觉上:

enter image description here

然后,用一个简单的测试文件进行评估:

if __name__ == "__main__":
    import sys
    print(sys.argv)

我们得到了我们提供的参数(当然sys.argv[0]保存了脚本名称):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']

答案 1 :(得分:53)

为了那些想知道如何到达这个窗口的人。方法如下:

您可以点击Select Run/Debug Configurationsenter image description here左侧)并转到Edit Configurations来访问此内容。一个 为了清晰起见,提供了gif。

enter image description here

答案 2 :(得分:9)

除了Jim的答案(抱歉没有足够的代表发表评论),只是想指出PyCharm中指定的参数 not 是否有特殊字符转义,不像你会做的那样在命令行上。所以,在命令行上你会这样做:

python mediadb.py  /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png

PyCharm参数将是:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"

答案 3 :(得分:4)

请注意,由于某些未知原因,无法在PyCharm Edu版本中添加命令行参数。它只能在专业版和社区版中完成。

答案 4 :(得分:2)

第一个参数是您要运行的脚本的名称。从第二个参数开始,它是您要从命令行传递的参数。以下是测试脚本:

from sys import argv

script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second

以下是传递输入参数的方法: “脚本的路径”,“第一个参数”,“第二个参数”

让我们说你的脚本的路径是/home/my_folder/test.py,输出将是:

Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter

希望这有帮助,因为我花了一些时间来确定输入参数是用逗号分隔的。

答案 5 :(得分:1)

将以下内容添加到Python文件的顶部。

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

现在,您只需右键单击Python脚本即可。

答案 6 :(得分:0)

我相信它甚至包含在Edu版本中。只需右键单击绿色实心箭头按钮(运行),然后选择“添加参数”。

答案 7 :(得分:0)

对我来说它适用于edu版本。对我而言,不必在解释器选项中指定-s选项。

Pycharm parameters for running with command line

答案 8 :(得分:0)

在PyCharm CE 2019.1+上:

  1. 从菜单栏中单击运行->编辑配置
  2. 参数文本框中添加参数(例如file2.txt file3.txt--myFlag myArg --anotherFlag mySecondArg
  3. 点击“应用”
  4. 点击确定

答案 9 :(得分:0)

在 PyCharm 的编辑配置中,当您以字符串形式提供参数时,不应使用 ''(这些引号)来提供您的输入。

代替-s'file1.txt',-s'file2.txt' 只需使用:

-s file1.txt, -s file2.txt

答案 10 :(得分:-1)

当我检查上面的“运行”->“编辑配置”时,这不存在 因此,转到“文件”->“其他设置”->“为新项目运行配置模板”->“ python”,我们将获得脚本路径,参数