【发布时间】:2019-01-01 06:34:35
【问题描述】:
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")
我有之前的代码来加载和打开位于这条路线的所有 .txt。我想执行这个路由中所有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'
我想浏览所有文件并在每个文件中进行相同的操作。
【问题讨论】:
-
file_name是一个字符串,需要先打开文件(使用open()函数)才能读取文件。
标签: python regex file path directory