簡體   English   中英

在 Python 中編輯 *.dat 文件特定行的特定部分

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM