使用Python从文本文件获取值

2024-09-30 14:19:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在文本文件中有一些数据是这样组织的:

26.11.2014  154601  26      53.07
16.12.2014  155001  25.2    52.1

其中第一列是日期,第二公里,第三种燃料以升为单位,最后一列是成本以波兰兹罗提为单位。我正在尝试用加油统计创建我的个人程序。下面是我将新数据保存到文本文件的代码:

def add_petrol_refueling(date, km, petrol_cost, petrol_volume):

    plik = open('paliwo/benzyna.txt', 'a')
    plik.write(date + '\t' + km + '\t' + petrol_cost + '\t' + petrol_volume)
    plik.write('\n')
    plik.close()

    return True

我使用以下方法从用户处获取数据:

print add_petrol_refueling(raw_input("Refueling date [dd:mm:rrrr]: "),
                    raw_input("Kilometers on car screen [km]: "),
                    raw_input("Refueling cost [zł]: "),
                    raw_input("Refueling volume [l]: "))

我的问题是,如何从文本文件中获取数据,对其进行一些操作,然后显示一些统计数据,如平均油耗,平均成本,何时可以假设下一次加油等,这是最好的选择。你知道吗


Tags: 数据addinputdateraw单位成本文本文件
1条回答
网友
1楼 · 发布于 2024-09-30 14:19:10

下面的方法应该可以帮助您开始从文本文件中获取数据。它首先读取benzyna.txt文件的每一行,删除尾随的换行符并基于\t将其拆分。这将创建一个data列表,其中包含2行,每行中有4个字符串。接下来,它遍历每一行,并将字符串中的最后三个条目转换为浮点数,以便您可以对它们执行计算:

with open('benzyna.txt') as f_input:
    data = [row.strip().split('\t') for row in f_input]
    data = [[rdate, float(km), float(petrol_cost), float(petrol_vol)] for rdate, km, petrol_cost, petrol_vol in data]

print data 

这将显示:

[['26.11.2014', 154601.0, 26.0, 53.07], ['16.12.2014', 155001.0, 25.2, 52.1]]

或者,以下方法也会给出相同的结果:

data = []

with open('benzyna.txt') as f_input:
    for row in f_input:
        rdate, km, petrol_cost, petrol_vol = row.strip().split('\t')
        data.append([rdate, float(km), float(petrol_cost), float(petrol_vol)])

print data

相关问题 更多 >