2017-03-18 15 views
1

我嘗試寫打開一個包含兩行的文件的功能,先用字符串,給出了鑰匙和第二位的字符串,給出了值打開文件,並把行成獨立的串

到目前爲止,我有以下

f = open('PT.txt','r') 

string = "" 
while 1: 
    line = f.readline() 
    if not line:break 
    string += line 

f.close() 

這是內容的「PT.txt」

abcdefghijklmnopqrstuvwxyz 
gikaclmnqrpoxzybdefhjstuvw 

我得到以下輸出當我打印字符串

abcdefghijklmnopqrstuvwxyz 
gikaclmnqrpoxzybdefhjstuvw 

我現在很困惑如何獲取每一行上的自己的字符串以及如何創建一本字典。

我想字典看起來像

{ 
    'a': 'g', 
    'b': 'i', 
    'c': 'k', 
    # etc 
} 
+0

是遺憾 - 在這裏我不確切的措辭-newbie - 做了很多的閱讀,但仍然有點糊塗 – chrischris

回答

1

試試這個:

fp = open('PT.txt','r') 
s1 = fp.readline() 
s2 = fp.readline() 
s = zip(s1, s2) 
ans = {key : val for key,val in s} 
+1

感謝工作像一個魅力,我做了一個小編輯,而不是最後一行,我只是把字典的正面拉鍊 - 給出相同的輸出。順便說一句 - 我如何在問題的評論區顯示代碼 - 而不是將它放在文本框中 – chrischris

+1

@chrischris 1.做'dict(zip(s1,s2))''完全沒問題,'yi xiao'分兩步進行,使其更加清晰。 2.你不能在評論中放入多行代碼。如果您需要發佈更多代碼來幫助解釋您的問題,則應將其添加到問題中。 –

0
with open("filename") as infile: 
    lines = infile.readlines() 

注:請不要使用字符串,或任何其他命令,鍵入或標準模塊名作爲變量名。

+1

'string'是不是一個類型的名字,但它_is_的名字一個標準模塊,因此避免將它用作變量名是個好主意。 –