文本文件中的数据,如矩阵,带有字符串和数字。我想设置一个过滤器,用python修改一些基于字符串的数字条件

2024-10-04 07:38:49 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:

300 "FTPAT1  2   " 301 "CHURCH  2   " "01" "Open"   "Line"     
300 "CHURCH  2   " 301 "GREENL1 1   " "01" "Open"   "Line"      
400 "FTPAT1  2   " 401 "CHURCH  2   " "01" "Closed" "Line"     
400 "CHURCH  2   " 401 "GREENL1 1   " "01" "Closed" "Line"    

我想把300-301的“开”改成“关”,然后 将400-401“关闭”更改为“打开”

到目前为止,我所做的是:

file = open('testfile.txt', 'r'):
for line in file: 
    print line,

请帮帮我! 非常感谢


Tags: intxtforlineopenfilechurchprint
1条回答
网友
1楼 · 发布于 2024-10-04 07:38:49

您可以使用re.sub

import re
with open('filename.txt') as f:
   with open('new_filename.txt', 'w') as f1:
     f1.write(re.sub('Open|Closed', '{}', f.read()).format(*['Open' if i == 'Closed' else 'Closed' for i in re.findall('Open|Closed', f.read())]))

输出:

300 "FTPAT1 2 " 301 "CHURCH 2 " "01" "Closed" "Line"
300 "CHURCH 2 " 301 "GREENL1 1 " "01" "Closed" "Line"
400 "FTPAT1 2 " 401 "CHURCH 2 " "01" "Open" "Line"
400 "CHURCH 2 " 401 "GREENL1 1 " "01" "Open" "Line"

相关问题 更多 >