我想将数据保存在文本文件中,并从这些文件中创建字典,稍后将其传递给函数。
这是我的代码:
def lesson_dictionary(filename):
print "Reading file ", filename
with open(filename) as f:
mylist = f.read().strip().split()
dictionary = OrderedDict(zip(mylist[::2], mylist[1::2])) #keep keys/values in same order as declared in mylist
print dictionary
return dictionary
使用名为 sample.txt 的示例文件,其中包含由空格分隔的两列键/值对,它可以正常工作。例如,
抗体
光盘
英夫
产生一个像这样的列表:
OrderedDict([('a', 'b'), ('c', 'd'), ('e', 'f')])
但是,如果我更改 .txt 文件的代码和内容,它就会中断。例如,如果 sample2.txt 包括:
甲:乙
光盘
e:f
我的代码是
def lesson_dictionary(filename):
print "Reading file ", filename
with open(filename) as f:
mylist = f.read().strip().split(':') #CHANGED: split string at colon!
dictionary = OrderedDict(zip(mylist[::2], mylist[1::2]))
print dictionary
return dictionary
我得到以下输出:
OrderedDict([('a', 'b \nc'), ('d\ne', 'f')])
发生了什么?为什么 strip() 对第一个 .txt 文件有效,而对第二个文件无效?提前感谢您的帮助。