更改sys.stdin模式

时间:2013-03-28 15:15:03

标签: python stdin sys

如何更改模式stdin已打开?具体来说,我们将CSV文件传输到python脚本以清理数据,但是数据中的垂直选项卡似乎需要采用通用换行模式。

问题数据似乎是输入流中的一些\x0b个字符。

由python打印后,用'rU'打开其中一个文件

['P', 'B', '', '1 W Avene, #8\x0bMiami Beach, FL 33139']
['S', 'H', '\x0bElberon, NJ 07740', '9 E Avenue\x0bElberon, NJ 07740']
['C', 'W', 'E R A', '2 B 3rd Floor \x0bNew York NY 10023 ']
['D', 'M', '', '1 K Street, NW\x0bWashington, DC 20005']
['E', 'W', '', '5 P C Lane\x0bDenver, CO 80209-3311']

2 个答案:

答案 0 :(得分:2)

您的问题是,您正在阅读的CSV文件仅使用CR(\r)换行符;它与垂直标签无关。 Python 2.x在没有通用线路支持的情况下打开stdin(以便二进制文件正常工作)。

作为一种解决方法,您可以尝试这一点,假设您的输入相对较小:

csv.reader(sys.stdin.read().split('\r'))

答案 1 :(得分:0)

根据PEP 278,默认情况下,通用换行符已启用。

  

默认情况下启用通用换行支持,但在配置Python期间可以禁用。

您有样本数据吗?