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

使用r''原始字符串文字来防止 Python 解释\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:

所有三个版本都在 Windows 上有效。

于 2013-02-17T11:02:17.933 回答
0

将 d[int(key)] 更改为 d[ord(key)]

于 2013-02-17T11:17:59.453 回答