由于某种原因,一个始终可以正常工作的脚本现在失败了:(我进行了调查,并将其缩减至最小限度,但仍然无法正常工作:
猫a.py:
import sys
for row in sys.stdin.readlines():
print("hey")
print(row)
测试:
>> cat b.csv
a,b,c
1,2,3
>> cat b.csv | python a.py
// hangs for ever, if I Ctrl+C:
for row in sys.stdin.readlines():
KeyboardInterrupt
知道会发生什么吗?谢谢!
经过调查,它似乎与我使用的别名有关。
因为我为python2和3使用了不同的库,
pythonpath2=/usr/local/lib/python2.7/site-packages
pythonpath3=~/Library/Python/3.6/lib/python/site-packages:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
alias p="unset PYTHONPATH; export PYTHONPATH=${pythonpath3}; python3.7"
alias p2="unset PYTHONPATH; export PYTHONPATH=${pythonpath2}; echo $PYTHONPATH; python"
因此,我想在终端中进行管道传递之前,先将管道传递到别名的最后一个命令中,然后进行更改以将其传递到别名的第一个命令中(未设置),从而使其无效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句