Pycharm 和 sys.argv 参数
Pycharm and sys.argv arguments
我正在尝试调试一个将命令行参数作为输入的脚本。参数是同一目录中的文本文件。脚本从 sys.argv 列表中获取文件名。我的问题是我无法使用 pycharm.
中的参数启动脚本
我尝试在 "Run" > "Edit configuration" 菜单中的 "Script parameters" 字段中输入参数,如下所示:
-s'file1.txt', -s'file2.txt'
但是没有用。如何使用参数启动我的脚本?
P.S。我在 Ubuntu
在 PyCharm 中,参数被添加到 Script Parameters
中,但是,它们用双引号括起来 ""
并且没有指定像 -s
这样的解释器标志。这些标志在 Interpreter options
框中指定。
脚本参数框内容:
"file1.txt" "file2.txt"
解释器标记:
-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"
为了那些想知道如何做到这一点的其他人 window。方法如下:
您可以通过单击 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
from sys import argv
script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second
下面是传递输入参数的方式:
'Path to your script','First Parameter','Second Parameter'
假设您脚本的路径是 /home/my_folder/test.py
,输出将类似于:
Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter
我花了一些时间才弄清楚输入参数是用逗号分隔的。
请注意,由于某些未知原因,无法在 PyCharm Edu 版本中添加命令行参数。它只能在专业版和社区版中完成。
我相信它甚至包含在 Edu 版本中。只需右键单击绿色实心箭头按钮 (运行) 并选择 "Add parameters"。
它适用于我的 edu 版本。我没有必要在解释器选项中指定 -s 选项。
将以下内容添加到 Python 文件的顶部。
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
现在,您只需右键单击 Python 脚本即可。
在 PyCharm 社区版或专业版 2019.1+ :
- 从菜单栏单击 运行 -> 编辑配置
- 在 Parameters 文本框中添加您的参数(例如
file2.txt file3.txt
或 --myFlag myArg --anotherFlag mySecondArg
)
- 单击应用
- 单击确定
在 PyCharm 的编辑配置中,当您将参数作为字符串提供时,您不应使用 ''(这些引号)来提供输入。
代替-s'file1.txt',-s'file2.txt'
只需使用:
-sfile1.txt,-sfile2.txt
您可以像 -d"rd-demo"
那样使用 -argName"argValue"
添加 Pycharm 个参数
-d"rd-demo" -u"estate"
从 IDE
中选择 edit Configuration
后在 Parameters
部分中添加的参数
我正在尝试调试一个将命令行参数作为输入的脚本。参数是同一目录中的文本文件。脚本从 sys.argv 列表中获取文件名。我的问题是我无法使用 pycharm.
中的参数启动脚本我尝试在 "Run" > "Edit configuration" 菜单中的 "Script parameters" 字段中输入参数,如下所示:
-s'file1.txt', -s'file2.txt'
但是没有用。如何使用参数启动我的脚本?
P.S。我在 Ubuntu
在 PyCharm 中,参数被添加到 Script Parameters
中,但是,它们用双引号括起来 ""
并且没有指定像 -s
这样的解释器标志。这些标志在 Interpreter options
框中指定。
脚本参数框内容:
"file1.txt" "file2.txt"
解释器标记:
-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"
为了那些想知道如何做到这一点的其他人 window。方法如下:
您可以通过单击 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
from sys import argv
script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second
下面是传递输入参数的方式: 'Path to your script','First Parameter','Second Parameter'
假设您脚本的路径是 /home/my_folder/test.py
,输出将类似于:
Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter
我花了一些时间才弄清楚输入参数是用逗号分隔的。
请注意,由于某些未知原因,无法在 PyCharm Edu 版本中添加命令行参数。它只能在专业版和社区版中完成。
我相信它甚至包含在 Edu 版本中。只需右键单击绿色实心箭头按钮 (运行) 并选择 "Add parameters"。
它适用于我的 edu 版本。我没有必要在解释器选项中指定 -s 选项。
将以下内容添加到 Python 文件的顶部。
import sys
sys.argv = [
__file__,
'arg1',
'arg2'
]
现在,您只需右键单击 Python 脚本即可。
在 PyCharm 社区版或专业版 2019.1+ :
- 从菜单栏单击 运行 -> 编辑配置
- 在 Parameters 文本框中添加您的参数(例如
file2.txt file3.txt
或--myFlag myArg --anotherFlag mySecondArg
) - 单击应用
- 单击确定
在 PyCharm 的编辑配置中,当您将参数作为字符串提供时,您不应使用 ''(这些引号)来提供输入。
代替-s'file1.txt',-s'file2.txt' 只需使用:
-sfile1.txt,-sfile2.txt
您可以像 -d"rd-demo"
那样使用 -argName"argValue"
添加 Pycharm 个参数
-d"rd-demo" -u"estate"
从 IDE
中选择edit Configuration
后在 Parameters
部分中添加的参数