的線我已經從一個文本文件中的以下輸入:Python的 - 解析文本
Title Value Position Perturbation 1.5 0.6 8.5 9.8 0 8.5 9.6 0.5 0.6 (...)
Title Value Position Perturbation 3 1.5 6 0 0.8 9.7 5.3 9.9 0.7 0.9 (...)
我想刪除前4列,與數列我想子集,每4個價值觀和改變第3個值的對於第二個和所述位置移除第四之一,因此,輸出應爲:
1.5 8.5 0.6 0 9.6 8.5 0.6 (...)
3 6 1.5 0.8 5.3 9.7 0.7 (...)
對於此提出我編寫以下Python代碼:
import sys
input_file= open (sys.argv[1],'r')
output_file= open (sys.argv[2], 'w')
with open(sys.argv[1]) as input_file:
for i, line in enumerate(input_file):
output_file.write ('\n')
marker_info= line.split()
#snp= marker_info[0]
end= len(marker_info)
x=4
y=8
# while y<=len(marker_info):
while x<=end:
intensities= marker_info[x:y]
AA= intensities[0]
BB= intensities[1]
AB= intensities[2]
NN= intensities[3]
output_file.write ('%s' '\t' '%s' '\t' '%s' '\t' % (AA, AB, BB))
x= y
y= x + 4
input_file.close()
output_file.close()
該代碼似乎工作正常,但問題是,對於每一行,最後四個值都丟失。所以,我猜這個問題出現在「while」語句中......但我不知道如何解決它(我知道這似乎是一個簡單的問題)。
在此先感謝您的任何建議。
僅供參考:當使用資源你不需要手動關閉輸入流。這就是爲什麼存在「with」的原因:-) – oopbase 2014-10-08 08:05:59