【发布时间】:2021-01-18 18:18:42
【问题描述】:
所以我有 7000 多个 txt 文件,看起来像这样:
1 0.51 0.73 0.81
0 0.24 0.31 0.18
2 0.71 0.47 0.96
1 0.15 0.25 0.48
作为我想要的输出:
0 0.24 0.31 0.18
2 0.71 0.47 0.96
我编写的代码结合了多个来源,它看起来像这样:
#!/usr/bin/env python3
2 import glob
3 import os
4 import pathlib
5 import re
6 path = './*.txt'
7
8 for filename in glob.glob(path):
9 with open(filename, 'r') as f:
10 for line in f.readlines():
13 if not (line.startswith('1')):
14 print(line)
15 out = open(filename, 'w')
16 out.write(line)
17 f.close()
但上例的输出是:
2 0.71 0.47 0.96
如何修复代码以提供正确的输出?
【问题讨论】:
-
您在循环中使用
w打开文件,每次都会截断文件,只剩下最后一行。要么更改为a,要么在循环外打开一次 -
你也永远不会关闭
out,也没有理由关闭f,因为它是用上下文管理器打开的
标签: python python-3.x glob