使用python读取clear_activity.csv,通过判断每一行竖线分割的第二个字段是否可以用正则表达式匹配到“activity",来进行分割,如果可以,就将该行第二个字段作为键值对的key,而将接下来几行不可以匹配到的,作为value,之后添加一个空行,写入到done.txt中,如果value为空,则连同对应的key都不写入
时间: 2023-05-15 07:04:39 浏览: 54
以下是Python代码实现:
```python
import re
with open('clear_activity.csv', 'r') as f:
lines = f.readlines()
output = []
key = ''
value = ''
for line in lines:
fields = line.strip().split('|')
if len(fields) < 2:
continue
if re.match(r'.*activity.*', fields[1]):
if key and value:
output.append(key + '\n' + value + '\n\n')
key = fields[1]
value = ''
else:
value += line
if key and value:
output.append(key + '\n' + value + '\n\n')
with open('done.txt', 'w') as f:
f.writelines(output)
```
这段代码会读取文件`clear_activity.csv`,逐行进行处理。如果某行的第二个字段可以匹配到`activity`,则将上一个键值对写入到`output`列表中,并将该行的第二个字段作为新的key。如果某行的第二个字段不能匹配到`activity`,则将该行的内容添加到当前的value中。最后,将所有的键值对写入到`done.txt`中,每个键值对之间用一个空行隔开。
如果某个key对应的value为空,则不会将该键值对写入到`done.txt`中。
阅读全文