Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从文本文件行收集数据_Python - Fatal编程技术网

在python中从文本文件行收集数据

在python中从文本文件行收集数据,python,Python,我正在尝试从.txt文件中获取值。例如: 127.0.0.1次尝试的答案=1次=1s id=1 127.0.0.1次尝试的答案=1次=2s id=1 127.0.0.1次尝试的答案=1次=15s id=1 127.0.0.1次尝试的答案=1次=12s id=1 127.0.0.1次尝试的答案=1次=4s id=1 我想从每一行中累积所有“Time=xs”字,并尽可能将它们保存到变量(列表、数组等)中。我已经可以访问.txt文件,并尝试将其拆分以分别获取行,但结果似乎无法获得它们 with ope

我正在尝试从.txt文件中获取值。例如:

127.0.0.1次尝试的答案=1次=1s id=1

127.0.0.1次尝试的答案=1次=2s id=1

127.0.0.1次尝试的答案=1次=15s id=1

127.0.0.1次尝试的答案=1次=12s id=1

127.0.0.1次尝试的答案=1次=4s id=1

我想从每一行中累积所有“Time=xs”字,并尽可能将它们保存到变量(列表、数组等)中。我已经可以访问.txt文件,并尝试将其拆分以分别获取行,但结果似乎无法获得它们

with open("file.txt", "rt") as file:                
    lines = file.readlines()
    for line in lines: 
        time = line.split(" ")
我还是一个初学者,如果这个问题很小,请原谅


谢谢大家!

您可以创建一个空列表并存储拆分行的第四个元素

times = []
with open("file.txt", "rt") as file:                
    for line in file: 
        times.append(line.split(" ")[4])

也可以使用正则表达式

重新导入
将open(“file.txt”)作为f:
times=re.findall(r“Time=(\d+)s”,f.read())
印刷(次)
# ['1', '2', '15', '12', '4']

注意:
f.read()
将整个文件内容读取到内存中。因此,如果文件很大,您应该迭代文件对象,并使用
re.search()

应用模式,您可以避免
file.readlines()
,只需对文件中的行执行
,这将生成一个表单列表
[“Time=1s”,“Time=2s”…]
小的“hack”,您可以使用
line.split(“”[4]提取时间[5:-1]
.OP提到他想要累积时间=xs您不需要使用
readlines()
这里,您可以对文件中的行进行迭代:
。从可以应用的每一行(正则表达式)提取时间。
match=re.search('Time=(\d+)s',line);如果匹配:Time=match.group(1)
。您还可以使用
str.find()
获取
'Time'的索引,并使用相同的函数获取第一个
's'
后的索引:
idx=line.find('Time');如果idx>=0:Time=line[idx+5:line.find('s',idx+5)]
。要将
str转换为
int
,您可以使用。