使用while循环打开几个txt文件

时间:2016-09-12 21:50:35

标签: python for-loop text while-loop

我有一些txt文件,其名称具有以下模式:

arc.1.txt, arc.2.txt,...,arc.100.txt,..., arc.500.txt,...,arc.838.txt

我知道我们可以使用for loop编写一个程序来逐个打开文件,如果我们现在是文件的总数。我想知道是否可以使用While loop而不计算打开它们的数字文件?

3 个答案:

答案 0 :(得分:4)

4kB

答案 1 :(得分:3)

绝对可以使用while循环,假设文件按顺序编号:

i = 0
while True:
    i += 1
    filename = 'arc.%d.txt' % i
    try:
        with open(filename, 'r') as file_handle:
            ...
    except IOError:
        break

虽然这对所有的嵌套都变得非常难看。你可能最好使用像glob.glob这样的文件名列表来获取文件名。

from glob import glob
filenames = glob('arc.*.txt')
for filename in filenames:
    with open(filename) as file_handle:
        ...

有一些与第二种方法相关的竞争条件 - 如果文件以某种方式在glob找到它之间以及实际上是时候处理文件时被删除,那么你的程序可能会有糟糕的一天。 / p>

答案 2 :(得分:0)

如果将它们全部添加到列表中然后逐个删除它们并将while条件设置为while(列表名称)> 0:然后打开下一个文件