0
我有我的最新升级后似乎已停止工作的脚本。为了找到问题,我写了一个小脚本:Python不打印换行
import subprocess
hdparm = subprocess.Popen(["xargs","echo"],
stdin=subprocess.PIPE)
hdparm.stdin.write("Hello\n")
hdparm.stdin.write("\n")
hdparm.stdin.close()
hdparm.wait()
quit()
这只是打印“你好”和一个新行,但我期待两个换行符。这是什么造成的? (我使用2.7.3此刻)
编辑:这里是有问题的脚本(编辑为清楚起见):
hdparm = subprocess.Popen(["hdparm", "--please-destroy-my-drive", "--trim-sector-ranges-stdin", "/dev/sda"],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
hdparm_counter = 0
for rng in ranges_to_trim:
hdparm.stdin.write("%d:%d\n" % (rng["begin"],rng["length"]))
hdparm_counter += 1
if hdparm_counter > 63:
hdparm.stdin.write("\n")
hdparm_counter = 0
if hdparm_counter != 0:
hdparm.stdin.write("\n")
hdparm.stdin.close()
hdparm.wait()
编辑:我认为这个问题是我的脚本本身。我需要将EOF发送给hdparm以使其执行任何所需的操作。
问题是,我实际上将其管道到'hdparm --trim-sector-ranges-stdin',它具有相同的效果。直到最近,换行符都被正确地传送并且一切正常。我做了一个系统更新,现在hdparm接收一大堆范围来修剪它无法处理的内容。 – Ivan 2013-03-15 04:33:46
如果你用这个信息更新问题,那么我们可以看到你在做什么。 – FatalError 2013-03-15 04:36:00
我添加了给我麻烦的脚本 – Ivan 2013-03-15 04:44:59