我有一个包含N行的.txt文件。我想读取行号8和行号16,如下所示:
2016-04-01 04:27:30.6216 (2283721) (more text)
2016-04-01 04:59:20.3635 (2283721) (more text)
如何恢复值04:59:20.3635和04:27:30.6216并减去它们?我尝试使用
打开并阅读文件txt = open(filename)
for line in txt:
print line
但我不知道如何在变量中存储每一行,然后访问我想要到达的行的特定部分。我尝试了一些东西,但我想知道哪种方法最有效。非常感谢!!
答案 0 :(得分:0)
您可以创建一个字符串数组,然后让文件在while循环中将每一行打印到数组中。 while循环检查您读入数组的数量或何时停止读取文件。之后,只需使用其他方法搜索特定的行或数组索引即可找到所需内容。根据手头的任务,还有很多其他方法。
答案 1 :(得分:0)
python擅长操纵字符串,所以在你的情况下 只是
timestamps =[]
for line in fh:
timestamps.append(line. split()[1])
print timestamps, timestamps[0]
你甚至可以通过使用库中的datetime或timedelta相关构建来提取/计算时间增量,但首先,正如其他评论,你应该阅读教程,相信我,它很简短,值得一读如果你认为有一天你偶尔会抓住一些线 - 你需要知道python一般可以做些什么
答案 2 :(得分:0)
以下是我的方法。希望它有所帮助:
import re
from datetime import datetime
def get_date_time (t):
"""
t: date time string;
parse date time string, and return datetime
"""
time_string = re.findall('\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{4}', t)[0]
return datetime.strptime(time_string, '%Y-%m-%d %H:%M:%S.%f')
if __name__ == '__main__':
with open('input.txt') as f:
src = f.read().split('\n') # split into lines
print get_date_time(src[7]) - get_date_time(src[5]) # calculate difference
输出:
0:31:49.741900