-3

数値を保存したファイルから読み取ろうとしています。数値は次のように配置されています。

1、2、4、5、6、7、8、9、2、1、2、3、4

これらすべての数値を個々の文字列に変換しようとしています。

読み取りファイル コードを記述し、テキスト全体を 1 つの文字列として取得できますが、個別にすることはできません。

たとえば、必要な出力は次のとおりです。

var1=1 var2=2 var3=4 など

助けてくれてありがとう

4

2 に答える 2

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]
于 2013-05-10T05:01:36.553 に答える
0

使用する変数が確実な場合は、たとえば次のようにします。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

他の効率的な方法が存在する

  • dict キーと値を使用してデータを保持し、それをグラフ メソッドに渡してプロットすることができます
  • グラフ クラスのインスタンス属性を使用してデータを保持し、クラスのグラフ メソッドを呼び出すことができます (試行しているグラフがクラスとして定義されている場合)。

類似の投稿

于 2013-05-10T05:58:03.060 に答える