防止新行字符从字面上读到python脚本

时间:2015-10-20 14:47:11

标签: python bash pipe

我有一个字符串,我想传递给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']

如何防止python读取换行符?

1 个答案:

答案 0 :(得分:4)

您可以使用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() 方法:

$rows = array();
$temprows = array();
$rows['total_count'] = 1000;
$rows['pos'] = $start;
for ($i = $start;$i <= ($start + $c) && $i <= 1000;$i++) {
    $row = array();
    $data = array();
    $row['id'] = $i;
    $data[0] = $i;
    $data[1] = "string";
    $row['data'] = $data;
    array_push($temprows,$row);
}
$rows['rows'] = $temprows;
echo json_encode($rows);

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