2014-04-27 31 views
0

我有一個.txt文件,其中包含;Python。從.txt文件導入特定字符

A! 
[email protected] 
C3 

等我想導入每個字符作爲一個不同的變量,如最終的結果是,例如,

line1_char1 = "A" 
line1_char2 = "!" 
line2_char1 = "B" 

等。有誰知道如何在Python中正確編碼?

我覺得我需要沿着這條路走;

ci = open("myfile.txt") 
line1_char1 = ci.read(1,1) 
line1_char2 = ci.read(1,2) 
line2_char1 = ci.read(2,1) 
ci.close 

等。我幾乎是正確的,我需要做些什麼才能使它工作?

+1

您可能需要使用數組列表。 – devnull

+0

@devnull不幸的是,我想要做的不能使用數組,我需要有不同的變量。 – darkhoard

回答

1

我從文件中讀取字符喜歡的方式是通過使用列表理解像這樣:

f=open(textfile, 'r') 
while 1: 
    line=f.readline().strip() #this gets rid of the newline character 
    if line=='':# if there are no more lines, quit looping 
     f.close() 
     break 
    characters=[line[i] for i in range(len(line))] this splits up every character of the line into its own item in a list. NOTE THIS WILL INCLUDE SPACES AND PUNCTUATION 

至於使用這些字符作爲變量名,我想你可能想嘗試的字典。對於每次從文件中讀取字符,分配一個值作爲密鑰在這樣

tempdict=dict() 
f=open(textfile, 'r') 
while 1: 
    x=f.readline().strip() 
    if x=='': 
     f.close() 
     break 
    x=[x[i] for i in range(len(x))] 
    for node in x: 
     tempdict[node]='' 

字典,現在你可以通過調用

tempdict[charactername] 

,要麼分配調用這些字符中的每一個值或檢索值。


UPDATE

characterslist=[] 
f=open('putyourtextfilenamehere','r') 
while 1: 
    x=f.readline().strip() 
    if x=='': 
     f.close() 
     break 
    x=[x[i] for i in range(len(x))] 
    for j in x: 
     characterslist.append(j) 

應閱讀每一行和字符保存到一個名爲characterslist

+0

非常感謝你,這幾乎是工作。我對字典不是很瞭解,但是列表理解對我來說幾乎是可以理解的。這只是我總共有6個字符導入,到目前爲止,我只能通過執行字符[0]和字符[1]來導入2,'N'和'%'。我如何獲得全部6個? – darkhoard

+0

您給出的示例中的每對字符都在不同的行上。這就是爲什麼我把1:循環放在那裏。使用while 1:part,然後讀取每行,然後將該列表中的字符添加到另一個列表中,您將獲得所有這些字符。我會爲你更新我的代碼。 – Amazingred

+0

非常感謝!它現在有效! :d。你可以告訴我是新來的編碼。 – darkhoard