Pycharm和sys.argv参数

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

我尝试在“运行”>“编辑configuration”菜单中的“脚本参数”字段中input参数,如下所示:

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

但它没有工作。 如何用参数启动我的脚本?

PS我在Ubuntu上

Solutions Collecting From Web of "Pycharm和sys.argv参数"

在PyCharm中,这些参数与Script Parameters一样添加,但是它们被括在双引号 "" ,没有指定像-s这样的解释器标志。 这些标志在Interpreter options框中指定。

脚本参数框内容:

 "file1.txt" "file2.txt" 

Interpeter标志:

 -s 

或者,在视觉上:

在这里输入图像说明

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

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

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

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

除了Jim的回答(对不起,没有足够的重复评论),只是想指出PyCharm中指定的参数没有特殊的字符转义,不像你在命令行上做的那样。 所以,在命令行中,你会这样做:

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

PyCharm参数将是:

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

为了其他谁想知道如何到达这个窗口的缘故。 就是这样:

您可以通过单击Select Run/Debug Configurations (位于左侧)来访问 在这里输入图像说明 )并转到Edit Configurations 。 为清晰起见提供了一个gif。

在这里输入图像说明

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

 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 

希望这有助于我花了一些时间来弄清楚输入参数是逗号分隔的。