加载、打开和操作Python中的正则表达式和文本文件
我有以前的代码来加载和打开此路由中的所有.txt文件。我想执行为该路由中的所有txt文件实现的Regex函数 它不起作用,它给了我:加载、打开和操作Python中的正则表达式和文本文件,python,regex,file,path,directory,Python,Regex,File,Path,Directory,我有以前的代码来加载和打开此路由中的所有.txt文件。我想执行为该路由中的所有txt文件实现的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"):
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*CVE\s+([^|]*)"
matches = re.search(regex, mensaje)
if matches:
print (matches.group(1).strip())
scan_folder("/Users/.../DiarioOficial")
回溯(最近一次呼叫最后一次):
文件“/Users/anna/PycharmProjects/extractData/Principal.py”,第80行,在
扫描文件夹(“/Users/anna/PycharmProjects/extractData/diarioficial”)
文件“/Users/anna/PycharmProjects/extractData/Principal.py”,第16行,在扫描文件夹中
mensaje=文件名.read()
AttributeError:“str”对象没有属性“read”
我想浏览所有文件,并在每个文件中进行相同的操作。您应该替换:
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'
与:
你错过了一份公开声明。文件名是一个字符串对象,它只是文件名。要首先打开文件,必须调用open。最方便的方法是使用这样的open,因为这样可以避免手动关闭文件:
mensaje = open(file_name).read()
你从未打开过这个文件<代码>文件名是一个字符串,首先需要打开文件(用<代码>打开()/代码>函数)从文件中读取。
mensaje = open(file_name).read()
with open(file_name) as f:
mensaja = f.read()