0

このスレッドの最初の回答に従いました。

Python - ファイルから辞書へ?

スクリプトを実行しようとすると、Python が閉じてしまいます。すべて、私が取り組んでいない他のスクリプトも含めて。

ここに私が書いたものがありますが、実質的に同じです:

    d = {}
with open("C:\Users\Owatch\Documents\Python\FunStuff\nsed.txt") as f:
    for line in f:
        (key, val) = line.split()
        d[int(key)] = val

print(d)

私が変更したのはファイルの場所だけでした。これは、ファイルが見つからないというエラーを修正するために含める必要があると理解したものです。

詳細:

これが私が使用することになっているコードです:

d = {}
with open("file.txt") as f:
    for line in f:
       (key, val) = line.split()
       d[int(key)] = val

これが私がしたことです。file.txtの代わりにファイルパスを追加し、完了したらすぐに辞書dを印刷する、または印刷するようにします。

d = {}
with open("C:\Users\Owatch\Documents\Python\Unisung Net Send\nsed.txt") as f:
    for line in f:
        (key, val) = line.split()
        d[int(key)] = val

print(d)

問題は、Python がクラッシュするだけなので、これを実行することさえできないことです。バージョン 3.1 を実行しています。

4

3 に答える 3

1

変化する

open("C:\Users\Owatch\Documents\Python\FunStuff\nsed.txt")

open(r"C:\Users\Owatch\Documents\Python\FunStuff\nsed.txt")

それ以外の場合、「\nsed」は改行プラス「sed」と見なされます。

アップデート:

入力ファイルから、問題は次のとおりです。

d[int(key)] = val

最初の列は整数ではなく文字であるためです。次のように変更します。

d[key] = val

または: (数字キーを使用する場合)

d[ord(key) - ord('a')] = val
于 2013-02-17T11:02:26.223 に答える
0

生の文字列リテラルを使用して、Pythonが改行としてr''解釈しないようにします。\n

with open(r"C:\Users\Owatch\Documents\Python\Unisung Net Send\nsed.txt") as f:

または二重のバックスラッシュを使用します:

with open("C:\\Users\\Owatch\\Documents\\Python\\Unisung Net Send\\nsed.txt") as f:

またはスラッシュの代わりに:

with open(r"C:/Users/Owatch/Documents/Python/Unisung Net Send/nsed.txt") as f:

3 つのバージョンはすべて Windows で有効です。

于 2013-02-17T11:02:17.933 に答える
0

d[int(key)] を d[ord(key)] に変更

于 2013-02-17T11:17:59.453 に答える