如何在 Python 中以清晰的格式将每个 LIST 并行保存为字段和记录到 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)]
SS2=[(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)]
SS3=[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

我正在使用以下代码将我的列表写入文件...但是当我再次写入时,它会添加到文件的最后一行。

但我想要的是....它应该水平追加,而不是垂直追加。我的意思是必须像表格、字段和记录一样。

因此,对于上述ss1记录行将为 6,并且每次保存都应将值并行添加为表字段和记录方式

SS1 SS2 SS3 1

, 2, 3, 4, 5 1, 2, 3, 4 1, 2, 3
def write_to_txt(a, file_name, delimiter=','):
    with open(file_name, 'a') as f:
        for k in SS1:
            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')

这是一个很好的第一句话:

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)]
SS2=[(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)]
SS3=[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
ALL = [SS1,SS2,SS3]
def write_to_txt(a, file_name, delimiter=','):
    with open(file_name, 'a') as f:
        for i, ss in enumerate(SS1):
            if i != 0:
                f.write("n")
            for ss in ALL:
                fmt = '%s' % delimiter
                f.write(fmt.join(map(str, ss[i])) + ",")
write_to_txt("a","lines.txt")

不幸的是,这不是文本文件的工作方式。如果你想"水平"附加,你真正需要做的是

  1. 读取文件的每一行
  2. 将新值附加到每一行(通过将旧字符串与新字符串连接起来(
  3. 写入
  4. 文件的每一行新行(现在处于写入模式,而不是追加(。请注意,这需要针对一个新文件,或者您应该先读取整个文件并在此处覆盖它。

希望有帮助。

相关内容

最新更新