已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
20小时前关闭。
Improve this question
因此,我试图做一个测试脚本提取下载时间从文本文件。该文件名为“file.txt”,包含以下内容:
下载固件时间:0.084858101秒
下载固件时间:0.071814549秒
我只想获取数值。但是,我当前的代码不能正确地提取值。它只是输出:“下载次数:[]".下面是我的代码:
import re
# Function Definition
def extract_download_times(filename):
pattern = r"Download FW Time: (\d+\.\d+) sec"
download_times = []
with open(filename, 'r') as file:
content = file.read()
matches = re.findall(pattern, content)
for match in matches:
download_times.append(float(match))
return download_times
# Main
filename = 'file.txt'
times = extract_download_times(filename)
print("Download times:", times)
当将该模式插入到re.findall函数时,将其放入一个单独的变量中可能不起作用,但即使将字符串模式直接插入到函数中,也会产生相同的结果。我该怎么弥补?
编辑:哎呀,在与文本文件内容匹配的模式方面犯了一些错别字。感谢所有可爱和礼貌的评论指出了这一点。尽管不匹配,但问题仍然存在。
感谢BDR提供的解决方案。我在我的代码中尝试了一下,它现在工作得很好。
1条答案
按热度按时间k4emjkb11#
似乎用于查找文件中模式的正则表达式是错误的。
例如:
Download FW Time:
Download Time:
文件的有效正则表达式为:
Download FW Time: ([\d]+|[\d]*\.[\d]+) sec
。您可以使用基于实时Web的正则表达式编辑器(this tool for example)来尝试正则表达式。
注意:编辑后的正则表达式将匹配并捕获类型为1或.1或1.1的“数值”