如何使用循环在另一个文件中写入文件长度?

问题描述 投票:0回答:1

我正在尝试编写一个文件来比较三个数字可用的排列数量。当前脚本是

tmp = open("tmp_out.txt","w+")
out = open("output_trip.txt", "w")
N = 4
for k in range(2,N+1):
    count = 1
    for j in range(1,k):
        for i in range(0,j):
            tmp.write("({},{},{})\n".format(i,j,k))
            count = len(tmp.readlines())
    out.write('{}{:10d}\n'.format(k,count))

期望的输出是这样的

2      1
3      4
4      10

然而,当我

cat
我的文件时,我只是得到

2      0
3      0
4      0

当我在循环外尝试

readline()
时,它会适当地计算一个文件,但我需要它来获得多个值。我缺少的是简单的东西吗?

我尝试了很多我在网上找到的计数变体,但没有一个可以在循环中工作。我只包括了这个练习中最简单的。

我可以写一个 bash 脚本来计算这可能是最简单的,但我更愿意用 python 完成它。

python python-3.x readline counting
1个回答
0
投票

jasonharper 是正确的。它所要做的只是在计数工作之前包括 tmp.seek(0) 。正确的版本是:

N = 4
for k in range(2,N+1):
count = 1
for j in range(1,k):
    for i in range(0,j):
        tmp.write("({},{},{})\n".format(i,j,k))
        tmp.seek(0)
        count = len(tmp.readlines())
out.write('{}{:10d}\n'.format(k,count))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.