在日志文件中,有 .csv 文件,我只需要查找该文件名和文件扩展名的一次出现。
示例: Abcde.csv
我有下面这一行,但它找到文件路径在“导入文件./”和“.”字样内的所有 csv 文件。它也没有考虑“。”句子中的句号并打印下一行。
for result in re.findall(‘Importing file ./(.*?).’, fp.read(), re.S):
有什么方法可以只获取带有文件扩展名的文件名。
当前结果:
/user/path/abcde.csv
Line number :1235
期望:
abcde.csv
更新- 当前行:
行号 12983:导入文件/user/path/abcde.csv。
最佳答案
对于此示例字符串
Line number 12983: Importing file /user/path/abcde.csv.
您可以使用:
\bImporting file (?:/[^/\n]+)*/([^/\n]+\.csv)\.
\b导入文件
按字面匹配(?:
非捕获组/[^/\n]+
匹配/
和除/
或换行符之外的 1 个或多个字符
)*
关闭非捕获组并可选择重复/
匹配/
(
捕获组 1[^/\n]+\.csv
匹配除/
或换行符之外的 1 个以上字符,然后匹配.csv
<
)\.
关闭组 1 并匹配尾随点
示例
for result in re.findall(r"\bImporting file (?:/[^/\n]+)*/([^/\n]+\.csv)\.", fp.read()):
print(result)
输出
abcde.csv
关于python - 查找文件中第一个唯一出现的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70105967/