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
在我测试了我的程序之后,我发现除了2个小问题外,一切都很完美。你能告诉我出了什么问题吗?
我的文本文件中包含以下内容:
USERNAME1:密码1
username2:password2
USERNAME3:password3
username4:password4
username5:password5
(这是实际文本文件中的空行)
第一个问题: 我的程序将文件完整地读入字典,但它正在读取乱序,我试图在读入字典部分之后打印字典,下面就是我得到的字体。
{'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'password5', 'username4': 'password4'}
第二个问题:
对于文本文件,在password5之后,我必须按回车并保存文本文件才能得到这个:
{'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'passwor**d5'**, 'username4': 'password4'}
如果我没有在文本文件的末尾点击输入,那么它将成为:
{'username1': 'password1', 'username3': 'password3', 'username2': 'password2', 'username5': 'passwo**rd'**, 'username4': 'password4'}
答案 0 :(得分:0)
您正在使用无序字典,这就是打印字典时不保留订单的原因。其次,需要新的行字符才能使用for-in循环正确迭代。
答案 1 :(得分:0)
你错了是没有订购字典。
我建议使用OrderedDict或使用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
此外,您对该列表的意图是什么?