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