python - 防止换行符被逐字读取到 python 脚本中

标签 python bash pipe

我有一个字符串想要传递给 python 脚本,例如

$printf "tas\nty\n" 

产量

tas
ty

但是,当我通过管道(例如 printf "tas\nty\n"| ./pumpkin.py)时,南瓜.py 是:

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

我得到输出

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

如何防止Python读取换行符?

最佳答案

您可以使用 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

关于python - 防止换行符被逐字读取到 python 脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239807/

相关文章:

python - 在 Pygame 中组合纹理图 block 、墙壁和导出的单独关卡贴图

python - 如何使用字典键的范围?

node.js - 如何使用 node.js 从 stdin 逐行流式传输并发送到客户端?

unix - hadoop与mrjob管道在壳上

python - Python 中的毕达哥拉斯三元组

python - 在 Python 中删除字符串中特定子字符串前后的字符

bash - 如何在 bash 中打印文件末尾的第 n 行?

bash - 从bash中的文件读取的行中删除换行符

bash - awk 更改文件中的一列,其中列更改不同文件中的位置

html - Angular 中的字符串资源