用Python中的RegEx文本文件加载、打开和操作


import re
import os
def scan_folder(parent):
# iterate over all the files in directory 'parent'
for file_name in os.listdir(parent):
if file_name.endswith(".txt"):
mensaje = file_name.read()
mensaje = mensaje.replace("n","")
# Number of CVE from "DiarioOficial"
regex = r"s*CVEs+([^|]*)"
matches = re.search(regex, mensaje)
if matches:
print (matches.group(1).strip())
scan_folder("/Users/.../DiarioOficial")

我有以前的代码来加载并打开位于该路径中的所有.txt。我想执行Regex的功能,为这个路由中的所有txt文件实现。

它不起作用,它给了我:

Traceback (most recent call last):
File "/Users/anna/PycharmProjects/extractData/Principal.py", line 80, in <module>
scan_folder("/Users/anna/PycharmProjects/extractData/DiarioOficial")
File "/Users/anna/PycharmProjects/extractData/Principal.py", line 16, in scan_folder
mensaje = file_name.read()
AttributeError: 'str' object has no attribute 'read'

我想浏览所有的文件,并在每个文件中进行相同的操作。

您应该替换:

mensaje = file_name.read()

带有:

mensaje = open(file_name).read()

您缺少一个open语句。file_name是一个字符串对象,它只是文件的名称。要先打开文件,必须调用open。最方便的是使用像这样打开的,因为它节省了您手动关闭文件的时间:

with open(file_name) as f:
mensaja = f.read()

相关内容

  • 没有找到相关文章

最新更新