将列表保存到.txt文件中,然后从文件到列表中将其读回

时间:2017-06-12 10:20:14

标签: python list file tuples

我正努力将列表保存到.txt文件中,并将其从.txt文件读回到Python中的列表。

这是我的清单

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()

3 个答案:

答案 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.]]

答案 1 :(得分: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)

答案 2 :(得分: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(写入模式)为'newfile.txt'创建文件对象w

  

使用我们作为唯一项目,即(thetuple,)创建一个单例元组,并将其写入文件。