這是我的功能:
def read_file():
textfile = open("Animals.txt", "r", encoding="utf-8")
list = textfile.readlines()
print(list)
textfile.close()
這是 Animals.txt:
動物/冬眠/清醒時間/喂食時間
熊 / 冬天 / 9-20 / 12
夜貓子 / - / 21-05 / 21
海獅 / - / 6-18 / 14
如何制作一個串列,其中每一行的資訊都與動物名稱相關。例如,我希望 Bear 與 winter、9-20、12 相連,同時與 Nightowl 分開。
我的第一個想法是用 .split 分隔串列,然后繼續使用串列索引來導航元素。只是列印串列給出了這個:
['熊/冬/9-20/12\n','夜貓子/-/21-05/21\n','海獅/-/6-18/14\n','海豹/-/6- 18 / 14\n', '狼 / - / 6-20 / 12\n', '駝鹿 / - / 7-19 / 10\n']
- 我如何拆分串列以便所有內容都是它自己的元素?
- 使用字典是否更好?如果是這樣,我該如何制作一個字典,其中 Name ie Bear 與所有其他元素相關聯?
uj5u.com熱心網友回復:
檔案格式本質上是 CSV(盡管分隔符不是逗號)。您可以使用pandas或csv模塊,但由于這太瑣碎了,我建議:
class Animal:
def __init__(self, animal, hibernation, waking_hours, feeding_time):
self._animal = animal
self._hibernation = hibernation
self._waking_hours = waking_hours
self._feeding_time = feeding_time
def __str__(self):
return f'Animal={self._animal}, Hibernation={self._hibernation}, Waking hours={self._waking_hours}, Feeding time={self._feeding_time}'
list_of_animals = []
with open('Animals.txt') as afile:
for line in afile.readlines()[1:]:
list_of_animals.append(Animal(*map(str.strip, line.split('/'))))
print(*list_of_animals, sep='\n')
輸出:
Animal=Bear, Hibernation=winter, Waking hours=9-20, Feeding time=12
Animal=Nightowl, Hibernation=-, Waking hours=21-05, Feeding time=21
Animal=Sealion, Hibernation=-, Waking hours=6-18, Feeding time=14
Animal=Seal, Hibernation=-, Waking hours=6-18, Feeding time=14
Animal=Wolf, Hibernation=-, Waking hours=6-20, Feeding time=12
Animal=Moose, Hibernation=-, Waking hours=7-19, Feeding time=10
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535627.html
上一篇:在Tcl中寫入檔案會產生額外的行
