2015-10-20 76 views
2

我有一个字符串,我想传递给一个python脚本,例如,防止将新行字符从字面上读入python脚本

$printf "tas\nty\n" 

产生

tas 
ty 

但是当我管(如printf "tas\nty\n" | ./pumpkin.py)其中pumpkin.py是:

#!/usr/bin/python 
import sys 
data = sys.stdin.readlines() 
print data 

我得到的输出

['tas\n', 'ty\n'] 

我如何防止b的换行符eing阅读python?

回答

4

可以去除所有空格(开头和结尾)使用strip

data = [s.strip() for s in sys.stdin.readlines()] 

如果你只需要\n到底剥去你可以这样做:

data = [s.rstrip('\n') for s in sys.stdin.readlines()] 

或使用splitlines方法:

data = sys.stdin.read().splitlines() 

http://www.tutorialspoint.com/python/string_splitlines.htm

+1

'data = sys.stdin.read()。splitlines()'也可以工作 –

+0

@irritable_phd_syndrom,谢谢,明白了) –