讓我們假設我有以下文件:解析和修改文件與Python
H 0 -15.7284260000000 -16.4229420000000 0.364919000000000
H 0 -16.4853770000000 -15.1118660000000 0.364919000000000
O 0 -17.9378060000000 -14.2325190000000 0.944687000000000
H 0 -18.7307670000000 -14.6487540000000 0.606761000000000
H 0 -17.9738160000000 -13.3376780000000 0.606761000000000
H 0 -17.1677320000000 -11.1468579990000 0.307511000000000
...
和包含在文件中的行號下面的列表,根據一定的標準劃分:index = [[1,3][4,7][2,5,6]]
。
我想重寫文件,添加一個標籤到每一行根據假定的標準,即行1和3將得到標籤'H',行4,7標籤'M'和行2,5,6標籤「L」,來獲取文件:
H 0 -15.7284260000000 -16.4229420000000 0.364919000000000 H
H 0 -16.4853770000000 -15.1118660000000 0.364919000000000 L
O 0 -17.9378060000000 -14.2325190000000 0.944687000000000 H
H 0 -18.7307670000000 -14.6487540000000 0.606761000000000 M
H 0 -17.9738160000000 -13.3376780000000 0.606761000000000 L
H 0 -17.1677320000000 -11.1468579990000 0.307511000000000 L
H 0 -10.3904079990000 -10.7642359990000 0.664160000000000 M
...
我用下面的代碼,但我不能夠包括在write()
方法所需要的條件,任何幫助是值得歡迎的。提前致謝。
try:
input_file = open(file, 'r')
input = input_file.readlines()
print 'Input file \"' + file + '\" was read'
except:
error_mssg = 'Please provide an input file'
sys.exit(error_mssg)
with open('output.com','w') as output:
while ii<=len(input)-1:
if(input[ii].strip()==''):
break
output.write(input[ii].strip()+' H'+'\n')
ii = ii + 1
你不能做什麼? –
'即第1行和第3行將得到標籤'H',第4,7行標籤'M'等等,以獲得文件',你是如何決定H/M的? '[2,5,6]'會得到什麼?以及根據什麼標準? –
我無法根據列表中的數據選擇某個標籤,並將其添加到相關行中。這只是一個例子,對不起,如果不清楚,第[2,5,6]行會得到另一個標籤。 – Panadestein