3 回答

TA貢獻2019條經驗 獲得超9個贊
以下應該有效:
with open('myfile.csv') as f:
t=f.read()
t=t.replace('\n', '').replace(' ', ' ').replace(' ', ',')
l=t.split(']')
l.pop()
l=[i.replace('[', '') for i in l]
result=[[int(s) for s in k.split(',')] for k in l]
print(result)
輸出:
[[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]

TA貢獻1831條經驗 獲得超9個贊
您可以使用內置csv庫,然后只需拆分每行的值:
import csv
with open('test.csv', 'r') as testCsvFile:
testCsv = csv.reader(testCsvFile)
listOfLists = []
for row in testCsv:
listOfLists.append([int(val) for val in row[0][1:-1].split(' ')])
print(listOfLists)
# Output
# [[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]
編輯:更新了解析以將值轉換為ints

TA貢獻1812條經驗 獲得超5個贊
這是你想要的:
>>> with open("file.txt", "r") as f:
... content = f.read().replace("\n", "")
...
>>> content = [[int(i) for i in c.split(" ")] for c in content[1:-1].split("][")]
>>> content
[[12, 34, 45, 22, 3, 5, 34, 33, 2, 67, 5, 55, 2, 90, 88, 12, 34], [245, 4, 13], [33, 90, 50, 22, 90, 1, 23, 44, 876, 10, 7]]
首先將整個文件作為一個字符串讀取,去掉第一個和最后一個字符 ([和]) 以及換行符 ( \n)。然后分割成塊除以][。最后用空格字符分割每個塊并將它們轉換為整數。
添加回答
舉報