Skip to main content
 首页 » 编程设计

python之使用python用值替换文本文件中的单词

2025年05月04日11txw1958

我一直在尝试用一个值(比如 1)替换文本文件中的一个词,但我的输出文件是空白的。我是 python 的新手(我学习它才一个月)。

我的文件比较大,暂时只想替换一个值为1的单词。 这是该文件的一部分:

NAME SECOND_1 
 
ATOM 1 6 0 0 0 # ORB 1 
 
ATOM 2 2 0 12/24 0 # ORB 2 
 
ATOM 3 2 12/24 0 0 # ORB 2 
 
ATOM 4 2 0 0 4/24 # ORB 3 
 
ATOM 5 2 0 0 20/24 # ORB 3 
 
ATOM 6 2 0 0 8/24 # ORB 3 
 
ATOM 7 2 0 0 16/24 # ORB 3 
 
ATOM 8 6 0 0 12/24 # ORB 1 
 
ATOM 9 2 12/24 0 12/24 # ORB 2 
 
ATOM 10 2 0 12/24 12/24 # ORB 2 
 
#1 
 
#2 
 
#3 

我想先用值 1 替换单词 ATOM。接下来我想用空格替换 #ORB。到目前为止,这是我正在尝试的。

input = open('SECOND_orbitsJ22.txt','r') 
 output=open('SECOND_orbitsJ22_out.txt','w') 
for line in input: 
    word=line.split(',') 
    if(word[0]=='ATOM'): 
        word[0]='1' 
        output.write(','.join(word)) 

任何人都可以提供任何建议或帮助吗?非常感谢。

请您参考如下方法:

问题是输入的 ATOM 后没有逗号,所以 word[0] 不等于 ATOM。您应该按空格而不是逗号拆分。

您也可以只使用不带参数的 split()。

因为您只在找到匹配项时执行 output.write,所以输出保持为空。

附言打开文件时尝试使用 with 语句:

with open('SECOND_orbitsJ22.txt','r') as input, 
    open('SECOND_orbitsJ22_out.txt','w') as output: 
   ... 

此外,Alexander 建议使用正确的替换工具:str.replace。但是,请谨慎使用它,因为它不具有位置感知能力。 re.sub 是一个更灵活的选择。