2017-06-12 300 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

相关问题