两个小问题

2024-09-30 03:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

fn = raw_input("Enter file to open: ")
fileObject = open(fn,'r+')
dictionary = {}
for line in fileObject:
    x = line.split(":")
    a = x[0]
    b = x[1]
    c = len(b)-1
    b = b[0:c]
dictionary[a] = b
print dictionary

在我测试了我的程序之后,我发现除了两个小问题之外,所有的东西都是完美的。你能告诉我怎么了吗?你知道吗

我的文本文件包含以下内容:

用户名1:密码1

用户名2:密码2

用户名3:密码3

用户名4:密码4

用户名5:密码5

(这是实际文本文件中的空行)

第一个问题: 我的程序能很好地把文件读入字典,但它读得不正常,我试着在读入字典部分后打印字典,下面是我得到的。你知道吗

   {'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'password5', 'username4': 'password4'}

第二个问题:

对于文本文件,在password5之后,我必须按enter键并保存文本文件以获得以下结果:

   {'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'passwor**d5'**, 'username4': 'password4'}

如果我没有在文本文件的末尾按enter键,那么它将变为:

    {'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'passwo**rd'**, 'username4': 'password4'}

Tags: 密码dictionary字典用户名fn文本文件password2username2
2条回答

您正在使用无序词典,这就是为什么在打印词典时不保留顺序的原因。其次,需要使用for-in循环来正确迭代新行字符。你知道吗

你错了,字典没有订。你知道吗

我建议改用orderedict或使用Python列表。你知道吗

fn = raw_input("Enter file to open: ")
fileObject = open(fn,'r+')
list1 = []

for line in fileObject:
    x = line.split(":")
    list1.append(x)

print list1

另外,你对这份名单的意图是什么?你知道吗

相关问题 更多 >

    热门问题