我有一个非常简单的问题:使用Python从txt文件中读取不同条目的最有效方法是什么?
假设我有一个文本文件,如下所示:
42017 360940084.621356 21.00 09/06/2015 13:08:04
42017 360941465.680841 29.00 09/06/2015 13:31:05
42017 360948446.517761 16.00 09/06/2015 15:27:26
42049 361133954.539315 31.00 11/06/2015 18:59:14
42062 361208584.222483 10.00 12/06/2015 15:43:04
42068 361256740.238150 19.00 13/06/2015 05:05:40
在C中,我会这样做:
while(fscanf(file_name, "%d %lf %f %d/%d/%d %d:%d:%d", &id, &t0, &score, &day, &month, &year, &hour, &minute, &second) != EOF){...some instruction...}
用Python做这样的事情最好的方法是什么?以便将每个值存储到不同的变量中(因为我必须在整个代码中使用这些变量)。
提前感谢!
根据你想对数据做什么,熊猫可能是值得研究的东西:
import pandas as pd
with open(file_name) as infile:
df = pd.read_fwf(infile, header=None, parse_dates=[[3, 4]],
date_parser=lambda x: pd.to_datetime(x, format='%d/%m/%Y %H:%M:%S'))
双列表< code>[[3,4]]和< code>date_parser参数将第三和第四列(索引为0)作为单个数据时间对象读取。然后,您可以使用以下命令访问该列的各个部分
>>> df['3_4'].dt.hour
0 13
1 13
2 15
3 18
4 15
5 5
dtype: int64
(如果您不喜欢“3_4”键,请使用上面的< code>parse_dates参数,如下所示:
parse_dates={'timestamp': [3, 4]}
)
read_fwf
用于读取固定宽度的列,您的数据似乎遵守这些列。或者,还有诸如read_csv
、read_table
等函数。
(这个答案几乎是这个SO答案的重复,但是由于这里的这个问题更一般,所以我把它放在这里作为另一个答案,而不是评论。
我会查找 string.split() 方法
例如,您可以使用
for line in file.readlines():
data = dict(zip(("id", "t0", "score", "date", "time"), line.split(" ")))
instructions()
我感觉像泥鱼的回答不错,这里有另一种方式(可能轻一点)
import time
with open(file) as f:
for line in f:
identifier, t0, score, date, hour = line.split()
# You can also get a time_struct from the time
timer = time.strptime(date + hour, "%d/%m/%Y%H:%M:%S")
问题内容: 我正在从包含以下数据的CSV文件(xyz.CSV)中读取数据: 当我使用循环对其进行迭代时,我可以按以下代码逐行打印数据,并且仅打印column1数据。 通过上面的代码,我只能得到第一列。 如果我尝试打印line [1]或line [2],则会出现以下错误。 请建议打印列2或列3的数据。 问题答案: 这是我获得第二列和第三列的方法: 结果如下:
问题内容: 我有点头疼,只是因为一个简单,易于表达的陈述使我的脸上有些错误。 我有一个名为的文件,如下所示: 我现在想读取文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了: 问题答案: 该方法( 中没有 )可以直接读取文件: 你正在使用方法,该方法仅用于字符串参数。 编辑:新消息是一个完全不同的问题。在这种情况下,该文件中存在一些无效的。为此,我
问题内容: 我有一个包含多个词典的文件,如下所示: 或这个: 换句话说,每个词典中每个键的顺序都不相同。 我的问题: 最好的阅读本词典的方式是什么,以便无论顺序如何都可以调用Date,GenName和Segment?那可能吗? 请注意…这不是来自json文件。如果字典的构造不正确,我确定可以修改生成此输出的脚本。 问题答案: 正如您在评论中提到的,您要自己创建字典,因此以痛苦的格式存储字典并不是一
问题内容: 我正在尝试使用该模块从python脚本读取json文件。经过一番谷歌搜索后,我发现以下代码: json文件的路径和名称在哪里。我收到以下错误: 问题答案: 该代码用作变量名。它将阴影您导入的模块引用。为变量使用其他名称。 除此之外,代码在接受字符串的同时传递文件对象。 传递文件内容: 或使用接受类似文件的对象。
问题内容: 我刚刚在python上做了gzip的摘要。 而且我在屏幕上没有任何输出。作为python的初学者,我想知道如果要读取gzip文件中文件的内容该怎么办。谢谢。 问题答案: 尝试像这样通过gzip库压缩一些数据… …然后按照发布的代码运行… 这种方法对我有用,因为某些原因,gzip库无法读取某些文件。
问题内容: 我有一个CSV文件,下面是其外观示例: 我知道如何读取文件并打印每列(例如- )。但是我真正想做的是读取行,就像这样,然后依此类推。 然后,我想将这些数字存储到变量中,以便稍后将它们总计(例如): 。那我可以做。 我将如何在Python 3中做到这一点? 问题答案: 您可以执行以下操作: 要么 : 编辑: