Python 获取文件夹下所有文件
Posted 琲世
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 获取文件夹下所有文件相关的知识,希望对你有一定的参考价值。
前言
使用Python获取文件夹下的所有文件时,存在多种方式。
1. os.listdir
- os.listdir:参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称。
示例:
import os
path = 'D:\\Workspace'
for file_name in os.listdir(path):
print(file_name)
注意,不能返回子文件夹下的文件,并且仅返回名称。
2. os.walk
- os.walk:参数为文件夹路径,返回3个内容:绝对路径、子文件夹、文件名。 此方法可以遍历文件夹下的所有文件、子文件及内的所有文件:
例如:
D:/workspace/folder/text1.txt
D:/workspace/folder/text2.txt
此方法在输入的path为D:/workspace时,第一次遍历会获取/workspace下的所有文件和文件夹;第二次遍历会获取/workspace/folder下的所有文件和文件夹。因此需要对结果进行循环,以获取所有文件。
示例:
import os
path = 'D:\\Workspace'
for root, dirs, files in os.walk(path):
print(root)
print(dirs)
print(files)
返回:
D:\\Workspace
['folder']
[]
D:\\Workspace\\folder
[]
['text1.txt', 'text2.txt']
3. glob.glob
- glob:参数为路径以及文件过滤条件,若不设置过滤需填写为*,此函数会返回包括路径的文件夹和文件名
示例:
import glob
path = 'D:\\Workspace\\folder\\*'
for file_abs in glob.glob(path):
print(file_abs)
返回:
D:\\Workspace\\folder\\text1.txt
D:\\Workspace\\folder\\text2.txt
注意,不能返回子文件夹下的文件,并且返回文件名与绝对路径。
python获取当前路径下的 以及 子路径下的所有文件
import os
allFileNum = 0
allFileList = [] # 存放 当前路径 以及当前路径的子路径 下的所有文件
def getAllFilesInPath(path):
global allFileNum
curPathDirList = [] # 当前路径下的所有文件夹
files = os.listdir(path) # 返回当前路径下的所有文件和文件夹
for f in files:
if os.path.isdir(path + "/" + f):
if f[0] == ".":
pass # 排除隐藏文件夹
else:
curPathDirList.append(f) # 添加非隐藏文件夹
if os.path.isfile(path + "/" + f):
allFileList.append(f) # 添加文件
allFileNum = allFileNum + 1 # 总文件数+1
comparePackageName(f)
for dl in curPathDirList:
getAllFilesInPath(path + "/" + dl) # 递归获取当前目录下的文件夹内的文件
def comparePackageName(f):
absPath = os.path.abspath(f)
print(absPath)
if __name__ == '__main__':
getAllFilesInPath("/Users/wangyuan/AndroidStudioProjects")
print("当前路径下的总文件数 =", allFileNum)
以上是关于Python 获取文件夹下所有文件的主要内容,如果未能解决你的问题,请参考以下文章