在单个 ascii 文件中每第 N 组数据添加一个空行

Add in a blank line every Nth group of data in a single ascii file

如何在每个 "jump" 从 0 到 1、1 到 2 之后添加一个空行。 这是我的代码。

A =  [11,22,33,44,55,66,77,88,99]

with open ("vv.txt" ,"w") as out_file:
    for i in range(3):
        for j in  range(4):
                out_string = str(i) + " " + str(j) + " " +  str(A[i]) + " "
                out_string += "\n"
                out_file.write(out_string)
    out_file.close()

输出:

    0 0 11 
    0 1 11 
    0 2 11 
    0 3 11 
(add a blank line here)
    1 0 22 
    1 1 22 
    1 2 22 
    1 3 22 
(add a blank line here)
    2 0 33 
    2 1 33 
    2 2 33 
    2 3 33 

在嵌套循环后添加换行符:

A =  [11,22,33,44,55,66,77,88,99]

with open ("vv.txt" ,"w") as out_file:
    for i in range(3):
        for j in  range(4):
                out_string = str(i) + " " + str(j) + " " +  str(A[i]) + " "
                out_string += "\n"
                out_file.write(out_string)
        out_file.write("\n")
    out_file.close()

您需要在外循环之间添加一个空行。
如果您不希望最后有一个空行(如您的示例输出中所示),您还需要一个 if 语句。

A =  [11,22,33,44,55,66,77,88,99]

with open ("vv.txt" ,"w") as out_file:
    for i in range(3):
        for j in  range(4):
                out_string = str(i) + " " + str(j) + " " +  str(A[i]) + " "
                out_string += "\n"
                out_file.write(out_string)
        if i < 2:
                out_file.write("\n")
    out_file.close()

记住 range(3) 给你 0,1,2 而你只需要在 01 处换行,这就是为什么需要 i < 2

期待已久的一线

print('\n\n'.join('\n'.join('%r %r %r'%(i, j, A[i]) for j in range(4)) for i in range(3)),
      file=open("vv.txt", "w")))
  1. 上面的代码没有在文件末尾添加空行(即文件没有以"\n\n"结尾)
  2. .join method of strings 非常有用(并且可能导致令人难以置信的滥用)。
  3. 使用 print(..., file=...) 代替 fileobject.write(...) 会自动执行正确的操作,即在文件末尾添加换行符。
  4. print 完成他们的工作时,文件对象自动关闭并被垃圾收集。