数値を保存したファイルから読み取ろうとしています。数値は次のように配置されています。
1、2、4、5、6、7、8、9、2、1、2、3、4
これらすべての数値を個々の文字列に変換しようとしています。
読み取りファイル コードを記述し、テキスト全体を 1 つの文字列として取得できますが、個別にすることはできません。
たとえば、必要な出力は次のとおりです。
var1=1 var2=2 var3=4 など
助けてくれてありがとう
数値を保存したファイルから読み取ろうとしています。数値は次のように配置されています。
1、2、4、5、6、7、8、9、2、1、2、3、4
これらすべての数値を個々の文字列に変換しようとしています。
読み取りファイル コードを記述し、テキスト全体を 1 つの文字列として取得できますが、個別にすることはできません。
たとえば、必要な出力は次のとおりです。
var1=1 var2=2 var3=4 など
助けてくれてありがとう
>>> with open('nums.txt') as f:
nums = [int(n) for n in f.readline().split(', ')]
>>> nums
[1, 2, 4, 5, 6, 7, 8, 9, 2, 1, 2, 3, 4]
@Amberが指摘したようにcsv
、これにはモジュールを使用できます:
>>> import csv
>>> with open('nums.txt') as f:
r = csv.reader(f)
nums = [int(n) for n in next(r)]
>>> nums
[1, 2, 4, 5, 6, 7, 8, 9, 2, 1, 2, 3, 4]
使用する変数が確実な場合は、たとえば次のようにします。var1 .. var10 であり、入力ファイルに常に 10 個の数値が必要な場合は、以下のような単純な割り当てを使用して、プログラム変数内で割り当てられた値を取得できます。
s = "1, 2, 4" # s can be a line read from a file
(var1, var2 ,var3) = [i.strip() for i in s.split(',')]
割り当てがバランスが取れていない場合 (つまり、変数の数よりも少ない/多い入力値)、エラーが発生します
ValueError: too many values to unpack
他の効率的な方法が存在する