我当前正在尝试制作一个程序,该程序可以读取从程序更新的文本文件。我正在使用此程序来确定在断电情况下是否应通过与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是用于这样的东西的最佳选择吗?如果我可以使它正常工作,那么我将添加命令以关闭计算机。我想这是一个很长的问题,但至少我想知道是否有一种方法可以只打印正在打印的行的一部分。
答案 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文件具有列名(例如OK
和percentage
),则可以使用:
ok = data['OK']
percentage = data['percentage']