【问题标题】:Skip for loop if file exists如果文件存在则跳过循环
【发布时间】:2022-11-15 23:08:22
【问题描述】:

我正在处理经常更新的文件夹中的一些文件。我需要添加一段代码来检查文件是否已经在文件夹中,如果不在则继续处理。如果是,则跳过并选择另一个。到目前为止我有这个:

files_processed = os.listdir(path) # ['AZ_saturday_id-1', 'AZ_saturday_id-2', 'AZ_sunday_id-1', 'BY_saturday_id-1']

initials = ['AZ', 'BY', 'CX']
day = ['saturday', 'sunday']
id = [1, 2, 3, 4, 5]

files = []

for init in initials:
    for d in day:
        for i in id:
            name = f'{init}_{d}_id-{i}'

            if name in files_processed:
                continue
            
            files.append(name)

但这并没有达到我的预期。变量 files 获取在 for 循环中创建的所有文件名,但它应该只有 files_processed 中不存在的文件名。

当我尝试时:

name in files_processed

正确评估为 True/False 但它在循环中不起作用。有任何想法吗?

【问题讨论】:

  • 这对我来说很好用。你能分享files_processedfiles的价值吗?
  • id为内置函数保留,尽量避免重新定义它。

标签: python


【解决方案1】:

您可以使用 os 库,如下所示:

import os

os.path.exists("file.txt")

或者像这样:

import os.path

if os.path.isfile('filename.txt'):
    print ("File exists")
else:
    print ("File does not exist")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 2018-08-20
    • 2015-08-20
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多