簡體   English   中英

使用 Python 從文本文件中獲取值

[英]Get values from a text file using 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]: "))

我的問題是如何從文本文件中獲取數據以對其進行一些操作並稍后顯示一些統計數據的最佳選擇,例如平均油耗,平均成本,何時可以假設下一次加油等。

以下方法應該有助於您開始從文本文件中取回數據。 它首先讀取您的benzyna.txt文件的每一行,刪除尾隨的換行符並根據\\t將其拆分。 這將創建一個包含 2 行、每行 4 個字符串的data列表。 接下來它遍歷每一行並將最后三個條目從字符串轉換為浮點數,以便您可以對它們進行計算:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM