python - Python 文本替换为 for 循环
问题描述
我只是想删除所有日期时间值......但每次它都会从头开始并用最后一个值刷新文本。如何删除所有时间值?
我的文本文件是 hey.txt,这是它的内部:
14:15
24:32
trying
42:56
1:42
for
testing
代码部分:
import re
filename = "hey.txt"
text = open(filename).read()
n,i,c,x,=(0,0,0,0)
datetimes = []
for number in range(3600):
n+=1
b=str(n)
if n<10:
b = "0"+str(n)
elif n==60:
i+=1
n=0
datetimes.append("%d:%s"%(i,b))
for word in datetimes:
matches = re.compile(word).finditer(text)
for match in matches:
z= match.group(0)
print(z)
if z==word:
open("datetimes-doc.txt","w+").write(text.replace(z,""))
c+=1
elif z!=word:
c+=1
print("proccess:%d"%c)
这是我的发送文件 datetimes-doc.txt
14:15
24:32
trying
1:42
for
testing
这是控制台的一些输出:
1:42
proccess:1
2:56
proccess:2
4:15
proccess:3
4:32
proccess:4
14:15
proccess:5
24:32
proccess:6
42:56
proccess:7
解决方案
而不是 for 循环,为什么不:
#read entire file's content
with open('hey.txt') as f:
content = f.read()
# find time and replace with empty string
new_content = re.sub(r'[0-5]*[0-9]:[0-5]*[0-9]\n','', content)
#write results into file
with open('hey2.txt', 'w') as f:
f.write(new_content)
推荐阅读
- reactjs - ComponentDidMount 导致我的服务器崩溃
- sql - 如何将 Sysdate 转换为 GMT?
- javascript - 在适当的主菜单项下动态渲染 Nav 的子菜单
- git - 了解 Git LFS 存储库如何为未安装 LFS 扩展的开发人员工作
- reactjs - 使用reactjs提交表单后如何显示模式弹出窗口?
- c# - 我不明白为什么我有这两个错误
- scala - 如何在scala中创建类似的枚举类
- javascript - 反应 onSubmit 按钮 POST 不工作
- c++ - MFC:如何在标题栏和任务栏中设置不同的图标
- swift - 从扩展中调用 viewController 中的函数?