繁体   English   中英

使用 Python 读取文本文件

[英]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 文件具有列名(例如OKpercentage ),您可以改为使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM