【发布时间】:2017-05-28 23:13:25
【问题描述】:
我想调试一个从标准输入获取输入并将其发送到标准输出的小型 python 脚本。像这样使用:
filter.py < in.txt > out.txt
似乎没有办法将 Pycharm 调试配置为从我的测试数据文件传输输入。
这个问题之前有人问过,答案基本上是“你不能——重写脚本来从文件中读取。”
我修改了代码以获取文件,或多或少地使代码大小增加了一倍,如下:
import argparse
if __name__ == '__main__':
cmd_parser = argparse.ArgumentParser()
cmd_parser.add_argument('path', nargs='?', default='/dev/stdin')
args = cmd_parser.parse_args()
with open(in_path) as f:
filter(f)
其中 filter() 现在将打开的文件对象作为参数写入。这允许向后兼容,因此可以像上面一样使用它,同时我也可以在调试器下使用来自文件的输入来调用它。
我认为这是一个丑陋的解决方案。有没有更清洁的替代品?也许某些东西将丑陋留在单独的文件中?
【问题讨论】:
标签: python-3.x debugging pycharm stdin