如何在python中列出目录中的文件?

新手上路,请多包涵

我无法使用此代码列出目录中的文件

import os
from os import listdir
def fn():       # 1.Get file names from directory
    file_list=os.listdir(r"C:\Users\Jerry\Downloads\prank\prank")
    print (file_list)

 #2.To rename files
     fn()

在运行代码时它没有输出!

原文由 Jaskunwar singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 286
2 个回答

函数调用 fn() 在函数定义中 def fn() 。您必须通过取消缩进代码的最后一行来在外部调用它:

 import os
def fn():       # 1.Get file names from directory
    file_list=os.listdir(r"C:\Users")
    print (file_list)

 #2.To rename files
fn()

原文由 nikpod 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想列出所有文件,包括子目录。你可以使用这个递归解决方案

import os
def fn(dir=r"C:\Users\aryan\Downloads\opendatakit"):
    file_list = os.listdir(dir)
    res = []
    # print(file_list)
    for file in file_list:
        if os.path.isfile(os.path.join(dir, file)):
                res.append(file)
        else:
            result = fn(os.path.join(dir, file))
            if result:
                res.extend(fn(os.path.join(dir, file)))
    return res

res = fn()
print(res)
print(len(res))

原文由 BugsCreator 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题