使用Python读取文本文件

时间:2018-08-15 17:00:50

标签: python readline

我当前正在尝试制作一个程序,该程序可以读取从程序更新的文本文件。我正在使用此程序来确定在断电情况下是否应通过与UPS进行通信来关闭计算机。将数据输出到文本文件的程序称为Batterymon。我知道还有其他用于备用电池的程序,但这是我决定使用的程序。到目前为止,我已经能够读取文件并使用python打印该文件,但它会打印所有数据。我只需要很少的数据即可完成自己的工作。到目前为止,这是我的代码。

import csv
with open('Test.txt', 'r') as f:
     reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
     for line in reader:
             print(f.readline())

注意:我导入了csv,因为经过一番搜索,我发现它与我正在做的事情有关。

我是python的新手,因为我现在只使用了几天。我尝试在readline()命令中放置一个值,但该值从行的开头开始(该行具有不需要的信息)。我希望能够读取行中间的内容。我也很想尝试自行打印行或打印最近添加的行。

这是我当前代码中打印的行之一,它打印了大约1000行,指示时间和电池电量百分比。

2018-08-15, 09:54:51, OK, 60%, 2.88, 6231, -19380, , 15.200, -19380, 60.3%, , , , , , , , , , , , 

我正在尝试仅打印百分比和“确定”状态。 python是用于这样的东西的最佳选择吗?如果我可以使它正常工作,那么我将添加命令以关闭计算机。我想这是一个很长的问题,但至少我想知道是否有一种方法可以只打印正在打印的行的一部分。

3 个答案:

答案 0 :(得分:0)

下面的代码应仅打印所需的值

import csv
with open('Test.txt', 'r') as f:
   reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
   for line in reader:
       print(f.readline().split(', ')[3:4])

答案 1 :(得分:0)

假设每行格式相同,则可以用逗号分隔每行:

items = f.readline().split(', ')
okay_status = items[2]
percentage = items[10] # or items[3]?

#... use variables here...

答案 2 :(得分:0)

您可以使用Pandas(用于数据处理的Python库):

import pandas as pd

data = pd.read_csv('Test.txt')

ok = data.iloc[:, 2]

percentage = data.iloc[:, 3]

如果您的CSV文件具有列名(例如OKpercentage),则可以使用:

ok = data['OK']
percentage = data['percentage']