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



如何在每次从 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,您只需要在0处换行1这就是为什么需要i < 2

期待已久的单行

print('nn'.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. 上面的代码没有在文件末尾添加空行(即文件不以"nn"结尾(
  2. 字符串的.join方法非常有用(并可能导致令人难以置信的滥用(。
  3. 使用print(..., file=...)代替fileobject.write(...)会自动做正确的事情,在文件末尾添加换行符。
  4. 文件对象在完成其作业后自动关闭并垃圾回收print

最新更新