2017-06-12 296 views
-1

我努力將一個列表保存到一個.txt文件中,並將它從.txt文件讀回到Python中的一個列表。將一個列表保存到一個.txt文件中並從文件中讀回列表

這裏是我的名單

SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)] 

保存以可讀格式的abc.txt一行每個元組一行...不是ASCII或加密。

並且需要另一個例程來將ABC.Txt讀回到Python中的列表中。

這裏是我的代碼,我無法讀取在記事本中的物理文件或東西

def List2File(MyList,fname,msg): 
    start_time = STime() 
    with open(fname, 'wb') as fp: 
     pickle.dump(MyList, fp) 
    end_time = ETime() 
    if (msg=='Y'): 
     print(fname ,'Saved.../', 
    return() 
+4

到目前爲止您嘗試過什麼,遇到什麼問題?我們可以爲你編寫整個程序,但這不是StackOverflow的目的。 – hop

+1

「可讀」格式(與ASCII相反)是什麼意思? –

+0

DEF List2File(MYLIST,FNAME,MSG): START_TIME = STIME() 開放(FNAME, 'WB')作爲FP: 和pickle.dump(MYLIST,FP) END_TIME = ETIME() 如果(MSG = ='Y'): print(fname,'Saved ... /',file_size(fname),'/',len(fname),ElaspedTime(start_time,end_time),'Seconds') return() –

回答

0

你可以嘗試這樣的事情:

SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)] 

def write_to_txt(a, file_name, delimiter=','): 
    with open(file_name, 'a') as f: 
     for k in a: 
      fmt = '%s' % delimiter 
      f.write(fmt.join(map(str, k)) + '\n') 

def read_from_txt(file_name): 
    with open(file_name, 'r') as f: 
     data = [tuple(map(int, k.split(','))) for k in f.read().splitlines()] 
    return data 

write_to_txt(SS1, 'ABC.txt') 
data = read_from_txt('ABC.txt') 
print(data) 
+1

哇...再次,它是你的老闆...謝謝你的夥伴! –

+0

可以使用上面的例程來工作多個列表並行打印作爲表格字段並記錄我們在數據庫中看到的方式。希望不要太多的工作...如果造成不便,請對不起。 –

0

只需使用numpy

import numpy as np 
SS1 = [(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)] 
np.savetxt('my_file.txt', SS1) 
my_new_SS1 = np.genfromtxt('my_file.txt') 
print(my_new_SS1) 


Out[1]: [[ 1. 2. 3. 4. 5.] 
     [ 1. 2. 3. 4. 6.] 
     [ 1. 2. 3. 5. 6.] 
     [ 1. 2. 4. 5. 6.] 
     [ 1. 3. 4. 5. 6.] 
     [ 2. 3. 4. 5. 6.]] 
0

這應該是訣竅:

SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)] 
with open('newfile.txt','w') as fileobj: 
     fileobj.write('\n'.join('%s' % (x,) for x in SS1)) 

創建一個文件對象fileobj爲與w(寫模式)「newfile.txt」

做一個單身元組與我們作爲唯一的項目,即(thetuple,),它在寫文件。

+0

看一下這個解決方案@johnebenezer – void

+0

感謝哥們的迴應 –

+0

隨時準備幫忙沒問題:D – void

相關問題