用Python读取.head文件



我有几个家庭的能源消耗数据集。数据集存储在.txt文件中,我可以在Python中轻松读取它们。但是头文件存储在另一个文件中。这个文件的扩展名是。head

对于每一个建筑,我有这样的东西:

processed-H01-Accounts-3-31-power.HEAD
processed-H01-Accounts-3-31-power-CLEAN.txt

在文件内部看起来像这样:

# Created by Octave 3.8.0, Tue Jul 29 13:44:58 2014 BST
# name: h
# type: sq_string
# elements: 1
# length: 3051
timestamp   timestampWithDST    "Loughborough03,LBORO-SMART-020,00-0D-6F-00-00-F8-5C-A1,Freezer(Kitchen/utility room,Downstairs) / No of plugs(Landing,Upstairs)"   "Loughborough03,LBORO-SMART-032,00-0D-6F-00-00-F9-2C-9D,Fridge(Kitchen/utility room,Downstairs) / FridgeFreezer(Kitchen/utility room,Downstairs)"   "Loughborough03,LBORO-SMART-033,00-0D-6F-00-00-F9-2D-31,Battery Charger(Garage/Shed,Downstairs)"    "Loughborough03,LBORO-SMART-022,00-0D-6F-00-00-F9-2C-D5,Toaster(Kitchen/utility room,Downstairs)"   "Loughborough03,LBORO-SMART-027,00-0D-6F-00-00-F8-9F-32,Lamp 1(Bedroom 2,Upstairs)" "Loughborough03,LBORO-SMART-035,00-0D-6F-00-00-F8-5C-07,Computing Equipment(Bedroom 4,Upstairs)"    "Loughborough03,LBORO-SMART-021,00-0D-6F-00-00-F8-5B-FA,Microwave(Kitchen/utility room,Downstairs)" "Loughborough03,LBORO-SMART-029,00-0D-6F-00-00-F8-BE-1B,TV(Back Room,Downstairs) / Cable Decoder(Back Room,Downstairs) / Stereo(Back Room,Downstairs)"  "Loughborough03,LBORO-SMART-016,00-0D-6F-00-00-F9-2B-C6,Computing Equipment / Laptop(Front Room,Downstairs)"    "Loughborough03,LBORO-MET-010,00-0D-6F-00-00-C1-43-06,Small Power Down" "Loughborough03,LBORO-SMART-034,00-0D-6F-00-00-F8-BE-33,Dishwasher(Kitchen/utility room,Downstairs)"    "Loughborough03,LBORO-MET-008,00-0D-6F-00-00-C1-35-E1,Mains 1"

最后一行是我的数据集的列名。我需要阅读这些文件,并把它们放在一起在Python做我的建模。是否有一种方法将此文件格式在python转换为列表?

感谢

用制表符't'分隔最后一行,将.HEAD文件转换为列表

with open('processed-H01-Accounts-3-31-power.HEAD', 'r') as f:
lines = f.readlines()
column_names = lines[-1].split('t')
print(column_names)

在您的例子中,因为您只对文件的最后一行感兴趣,所以您可以先转到文件的末尾,只读取最后一行,然后根据制表符分隔行:

with open('processed-H01-Accounts-3-31-power.HEAD', 'r') as f:
# Move the file pointer to the end of the file
f.seek(0, 2)
# Read the last line of the file
last_line = f.readline()
# Split the line by the tab character
columns = last_line.split('t')
print(column_names)

最新更新