让我们假设我有以下文件:解析和修改文件与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