[英]Editing a specific part of specific line of *.dat file in Python
線 5163 是10,0.3 。 下面編寫的這段代碼將整行編輯為5,0.3 。 我只想將10號替換為5 號而不替換整條線。 我想編輯那個特定的部分。 如何才能做到這一點?
import os
import time
with open('Job-1.dat', 'rt') as fin:
with open('out.dat', 'wt') as fout:
for i, line in enumerate(fin):
if i == 5163:
fout.write(' 5, 0.3\n')
else:
fout.write(line)
os.remove('Job-1.dat')
time.sleep(5)
os.rename('out.inp', 'Job-1.inp')
改變:
if i == 5163:
fout.write(' 5, 0.3\n')
至:
if i == 5163:
items = line.split(',')
out = ','.join(['10'] + items[1:])
fout.write(out)
您可以通過僅替換要替換的內容來保留該行的最后一部分:
# your code
for i, line in enumerate(fin):
if i == 5163:
modified = line.replace("10,", "5,")
fout.write(modified + '\n')
else:
fout.write(line)
# etc
請參閱str.replace 。
正如@Blotosmetek 提到的,在每一行添加一個'\n'
(最后已經包含一個)將導致output 文件中的空行 - 如果不需要,請使用
fout.write(modified) # no extra '\n' added
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.