【发布时间】:2019-01-27 21:03:20
【问题描述】:
这是python脚本sum_columns.py:
#!/usr/bin/env python2.7
import sys
num_nodes = 0
num_edges = 0
for line in sys.stdin:
line = line.strip()
col_1, col_2 = line.split(',', 1)
col_1 = int(col_1)
col_2 = int(col_2)
num_nodes += col_1
num_edges += col_2
print '%s, %s' % (num_nodes, num_edges)
有一个名为 outputs.dat 的文件只有 1 行:
10, 10
我试图将 python 脚本的输出重定向到输入文件outputs.dat,但是当我这样做时,它会写出0, 0,而我期待10, 10。当我重定向到另一个未命名为outputs.dat 的文件时,我得到10, 10。为什么会这样?
这是我正在执行的命令。
[local_serv]$ cat outputs.dat
10, 10
[local_serv]$ cat outputs.dat | ./sum_columns.py
10, 10
[local_serv]$ cat outputs.dat | ./sum_columns.py > test.dat; cat test.dat
10, 10
[local_serv]$ cat outputs.dat | ./sum_columns.py > outputs.dat; cat outputs.dat
0, 0
[local_serv]$
我的理解是>重写了outputs.dat(如果已经存在的话),为什么python脚本打印10, 10时会重写为0, 0?
【问题讨论】: