[英]Using Python to read a text file
我目前正在尝试制作一个可以读取从程序更新的文本文件的程序。 我正在使用此程序通过与 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%, , , , , , , , , , , ,
我试图只打印百分比和 OK 状态。 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().split(', ')[3:4])
你可以用逗号分割每一行,假设每一行都是相同的格式:
items = f.readline().split(', ')
okay_status = items[2]
percentage = items[10] # or items[3]?
#... use variables here...
您可以使用 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']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.