python3 中文件的行数

Count of lines in a file in python3

请问如何将算术运算编辑的多行打印到文件中? 为了简化起见,假设乘以 2。我试过了:

f = open(f'file.dat', 'rw')
it = sum(1 for _ in f)*2
f.write("A  B  C line: \n")
f.write("\n")
f.close()

Desired result:
A  B  C line: 2
A  B  C line: 4
A  B  C line: 6

我得到一个错误:

io.UnsupportedOperation: not readable

您可以执行以下操作:

  1. 以 r+ 模式打开文件。
  2. 阅读前几行并对值求和
  3. 向文件写入新行。
with open("bleh.txt", 'r+') as fp:
    it = sum(1 for _ in fp) * 2
    fp.write("A  B  C  line: %d\n" % it)

这种方法的问题是,如果文件不存在,它就会卡住。

因此,将 r+ 更改为 a+

所以最终代码:

with open("bleh.txt", "a+") as fp:
    it = sum(1 for _ in fp) * 2
    fp.write("A  B  C  line: %d\n" % it)

当然...用a+模式,文件指针放在文件末尾。所以..需要添加以下内容:

with open("bleh.txt", "a+") as fp:
    fp.seek(0)
    it = sum(1 for _ in fp) * 2
    fp.write("A  B  C  line: %d\n" % it)

这会将文件指针移回开头。