シャシクマーKL:
私はファイルを持っているし、その下のような複数のリストで構成され
[234,343,234]
[23,45,34,5]
[354,45]
[]
[334,23]
私はPythonで単一のリストに行と追記することによりラインを読みしようとしています。
どうやってするの?
私が試したこれまで>
with open("pos.txt","r") as filePos:
pos_lists=filePos.read()
new_list=[]
for i in pos_lists.split("\n"):
print(type(i)) #it is str i want it as list
new_list.extend(i)
print(new_list)
前もって感謝します
Sayandip Dutta氏:
あなたはこれらを試すことができます。
>>> from ast import literal_eval
>>> with open(YOURTEXTFILE) as f:
... final_list = [literal_eval(elem) for elem in f.readlines()]
>>> final_list
[[234, 343, 234], [23, 45, 34, 5], [354, 45], [], [334, 23]]
または、
>>> from ast import literal_eval
>>> with open(YOURTEXTFILE) as f:
... final_list = sum(map(literal_eval, s.readlines()), [])
>>> final_list
[234, 343, 234, 23, 45, 34, 5, 354, 45, 334, 23]
どちらのあなたが欲しいです。
同じことは、ビルトインのpythonで行うことができますeval()
が、それは使用することは推奨されていないeval()
代わりに、信頼できないコードに使用ast.literal_eval()
非常に限られたデータ型で動作します。これに関する詳細は、以下を参照してください(のpythonのevalを使用して)対ast.literal_eval()?