【问题标题】:import a txt file in python and print all lines with specific word in string在python中导入一个txt文件并打印字符串中包含特定单词的所有行
【发布时间】:2016-11-14 19:00:16
【问题描述】:

我收到如下所示的数据:

0,JW111101,Run Name
0,111116,Date
0,+2.5,Increment
0,2=0,Start Station
0,1=Fri 11 Nov 2016 14:21:44,Date & Time Stamp
0,6=1 Off 4On,Cycle Times
0,6=Fluke 189B,Meter Type
0,6=Racal Landstar,GPS Reciever
0,1=Fri 11 Nov 2016 14:21:47,Date & Time Stamp
0,6=COMPANY NAME,142156.00,29.0638153,95.3436157,-1.2
0,6=LINE NAME,142156.00,29.0638153,95.3436157,-1.2
1,6=Test Station,142255.00,29.0638145,95.3436133,-0.9
1,6=-1559 On NG,142255.00,29.0638145,95.3436133,-0.9
1,6=-1169 Off NG,142255.00,29.0638145,95.3436133,-0.9
1,6=1Approx.,142255.00,29.0638145,95.3436133,-0.9
1,6=AC 0.735,142255.00,29.0638145,95.3436133,-0.9
1,1558,GPS Not Available
1,1460,142350.00,29.0638166,95.3436115,-0.9
1,1185z,142351.00,29.0638167,95.3436116,-0.9
1,1554,142352.00,29.0638166,95.3436116,-0.9

我想在第 3 列中找到最小和最大的数字。第三列实际上是一个UTC时间戳。
我的最终目标是能够弄清楚它们何时开始、何时结束以及它们的持续时间。
谁能指出我正确的方向?

【问题讨论】:

  • 是的。查找字符串操作、datetime 模块(strptime、strftime、toordinal)和max 函数。
  • 谢谢,我去看看

标签: python python-2.7 utc


【解决方案1】:

假设您的数据在一个名为 random.csv 的文件中,您可以通过以下方式读取数据。

import csv

list_of_stuff = []
with open('random.csv') as readcsv:
    row_object = csv.reader(readcsv)
    for value in row_object:
        list_of_stuff.append(value)

print list_of_stuff

现在您有了一个列表列表,其中每个子列表都是文件的一行。以下是有关读取 csv 文件的文档:https://docs.python.org/2/library/csv.html

您的第三列包含无法转换为时间戳的字符串和整数,因此我无法为您提供帮助。不过,让我们假设第三列都是整数。然后你可以在我上面的代码之外使用它:

third_column = [row[2] for row in list_of_stuff]
print "max: ", max(third_column)
print "min: ", min(third_column)
print "range: ", max(third_column) - min(third_column)

【讨论】:

  • 谢谢,这很好。数据实际上以 .txt 文件的形式提供给我,但我们通常还是将其转换为 csv。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 2016-04-07
相关资源
最近更新 更多