我的Python脚本用于迭代所有作为参数给出的文件,用法如下:
usage: make_it_so.py [-h] filename [filename ...]
Make this and that
positional arguments:
filename
optional arguments:
-h, --help show this help message and exit
为了运行它,我倾向于使用bash globbing,因为有多个文件。而且,我喜欢对任何脚本进行压力测试,以确保它在包含空格的文件夹和文件中正常工作,如下所示:
user@host:~$ ./make_it_so.py /path\ containing\ whitespaces/*.csv
或
user@host:~$ ./make_it_so.py '/path containing whitespaces/*.csv'
到目前为止,我主要使用纯文本编辑器和终端进行编程。但现在我想使用像PyCharm这样的IDE来更方便地调试脚本。我的问题来了:
如何配置调试配置以
- 或者使用文件全局绑定,或者
- 用空格设置多个文件路径参数?
(See下面是我的调试配置示例。)
我在脚本中得到的参数列表不是我所期望的:
['/path', 'containing', 'whitespaces/*.csv', "'/path", 'containing', 'whitespaces/1st', "file.csv'", '/path\\', 'containing\\', 'whitespaces/2nd', 'file.csv']
相反我会期望:
['/path containing whitespaces/1st file.csv', '/path containing whitespaces/2nd file.csv']
我知道PyCharm的调试配置中的 parameters 输入字段不是bash。但我希望它可以传递包含空格的参数。-有什么建议吗?
2条答案
按热度按时间axzmvihb1#
如果PyCharm没有扩展您的globs,那么它就没有运行shell来运行您的脚本,这是完全可以理解的。(pstree很适合)。找到PyCharm及其子对象,您将很快了解在它和运行代码的python解释器之间是否存在bash或其他shell。
我现在没有PyCharm来测试,但是我会尝试说服我的IDE(我使用PyDev)来做一件事,那就是用类似
bash -c "python /home/user/make_it_so.py"
的东西替换/home/user/make_it_so.py
。不能保证这会起作用(事实上,我有点怀疑,因为PyCharm可能需要知道源文件的路径来调试它)。如果这样做不起作用,我会尝试编写一个小的runner,其中包含如下内容:
并在调试器中运行。
同样,如果它能工作,我会印象深刻,但它可能会。无论如何,除非PyCharm专业人士介入帮助您解决这个问题,否则我希望这种思路在某种程度上是有帮助的。当然,
pstree
可以帮助您理解PyCharm是如何运行脚本的。t2a7ltrp2#
您可以只使用集成的终端并手动执行make_it_so.py。