用Python读取文件名和文件路径

文件结构
在这里插入图片描述

文件名

无限制

输出所有的文件夹名和文件名

import os

# 输出所有的文件夹名和文件名
path = 'F:\\Temp\\animal\\animal_photos\\'
fileList = os.listdir(path)
for name in fileList:
    print(name)

''' 
cat
dog
horse
lion
main.txt
person
tiger
'''

有限制

输出文件夹名和文件名

import os

path = 'F:\\Temp\\animal\\animal_photos\\'
fileList = os.listdir(path)
folders = []
txtFile = []
for name in fileList:
    j = name.split('.')
    # j的长度为2说明name是文件,若是1说明是文件夹
    if len(j) == 2:
        # 读取特定的文件名
        if j[1] == 'txt':
            txtFile.append(name)
    else:
        folders += j    # 或者 folders.append(name)


print(folders)
print(txtFile)

'''
['cat', 'dog', 'horse', 'lion', 'person', 'tiger']
['main.txt']
'''

输出文件夹里的文件名

import os
path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    cate = [path + x for x in os.listdir(path) if os.path.isdir(path + x)]
    for src in cate:
        fileNameList = os.listdir(src)
        print(fileNameList)

read_path(path)

'''
['白色英国短毛猫图片.jpg', '白色长毛波斯猫图片.jpg']
['八哥狗可爱图片.jpg', '白色哈士奇狗图片.jpg', '白色狗幼犬图片.jpg']
['001.jpg', '003.jpg']
['白狮子嘶吼图片.jpg', '草丛里休憩大狮子图片.jpg']
['普京.jpg']
['濒危老虎图片.png', '白老虎.jpg', '白色小老虎图片.jpg', '草地老虎图片.png']
'''

文件路径

无限制

输出文件路径和文件夹路径

import os
import glob

path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    # 存放路径的列表
    cate=[path+x for x in os.listdir(path)]
    for src in cate:
        print(src)

read_path(path)

''' 运行结果
F:\Temp\animal\animal_photos\cat
F:\Temp\animal\animal_photos\dog
F:\Temp\animal\animal_photos\horse
F:\Temp\animal\animal_photos\lion
F:\Temp\animal\animal_photos\main.txt
F:\Temp\animal\animal_photos\person
F:\Temp\animal\animal_photos\tiger
'''

文件夹里的文件路径

import os
path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    cate = [path + x for x in os.listdir(path) if os.path.isdir(path + x)]
    for src in cate:
        fileNameList = os.listdir(src)
        for filename in fileNameList:
            path = src + filename
            print('文件路径:%s'%(path))

read_path(path)

'''
文件路径:F:\Temp\animal\animal_photos\cat白色英国短毛猫图片.jpg
文件路径:F:\Temp\animal\animal_photos\cat白色长毛波斯猫图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog八哥狗可爱图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog白色哈士奇狗图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog白色狗幼犬图片.jpg
文件路径:F:\Temp\animal\animal_photos\horse001.jpg
文件路径:F:\Temp\animal\animal_photos\horse003.jpg
文件路径:F:\Temp\animal\animal_photos\lion白狮子嘶吼图片.jpg
文件路径:F:\Temp\animal\animal_photos\lion草丛里休憩大狮子图片.jpg
文件路径:F:\Temp\animal\animal_photos\person普京.jpg
文件路径:F:\Temp\animal\animal_photos\tiger濒危老虎图片.png
文件路径:F:\Temp\animal\animal_photos\tiger白老虎.jpg
文件路径:F:\Temp\animal\animal_photos\tiger白色小老虎图片.jpg
文件路径:F:\Temp\animal\animal_photos\tiger草地老虎图片.png
'''

有限制

输出文件夹路径

import os
import glob

path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    # 存放路径的列表,加个not就是保留文件
    cate=[path+x for x in os.listdir(path) if os.path.isdir(path+x)]
    for src in cate:
        print(src)
        
read_path(path)

'''
F:\Temp\animal\animal_photos\cat
F:\Temp\animal\animal_photos\dog
F:\Temp\animal\animal_photos\horse
F:\Temp\animal\animal_photos\lion
F:\Temp\animal\animal_photos\person
F:\Temp\animal\animal_photos\tiger
'''

输出固定后缀的文件路径

import os
import glob

path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    # 存放路径的列表
    cate=[path+x for x in os.listdir(path) if os.path.isdir(path+x)]
    for src in cate:
        for path in glob.glob(src+'/*.jpg'):
            # 如果不加后缀,path与src没有区别
            print('文件路径:%s'%(path))

read_path(path)

'''
文件路径:F:\Temp\animal\animal_photos\cat\白色英国短毛猫图片.jpg
文件路径:F:\Temp\animal\animal_photos\cat\白色长毛波斯猫图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog\八哥狗可爱图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog\白色哈士奇狗图片.jpg
文件路径:F:\Temp\animal\animal_photos\dog\白色狗幼犬图片.jpg
文件路径:F:\Temp\animal\animal_photos\horse\001.jpg
文件路径:F:\Temp\animal\animal_photos\horse\003.jpg
文件路径:F:\Temp\animal\animal_photos\lion\白狮子嘶吼图片.jpg
文件路径:F:\Temp\animal\animal_photos\lion\草丛里休憩大狮子图片.jpg
文件路径:F:\Temp\animal\animal_photos\person\普京.jpg
文件路径:F:\Temp\animal\animal_photos\tiger\白老虎.jpg
文件路径:F:\Temp\animal\animal_photos\tiger\白色小老虎图片.jpg
'''

import os
import glob

path = 'F:\\Temp\\animal\\animal_photos\\'

def read_path(path):
    # 存放路径的列表
    cate=[path+x for x in os.listdir(path) if os.path.isdir(path+x)]
    for src in cate:
        for path in glob.glob(src+'/*.png'):
            # 如果不加后缀,path与src没有区别
            print('文件路径:%s'%(path))

read_path(path)

'''
文件路径:F:\Temp\animal\animal_photos\tiger\濒危老虎图片.png
文件路径:F:\Temp\animal\animal_photos\tiger\草地老虎图片.png
'''

实战

python读取文件名写入到Excel文件

import os
import xlwt

path = 'F:\\Temp\\animal\\animal_photos\\'

new_workbook = xlwt.Workbook()                      # 新建工作簿new_workbook对象
worksheet = new_workbook.add_sheet('fileName')      # 新建工作表
n = 0
for i in os.listdir(path):
    worksheet.write(n, 0, i)                        # 每一行写一个文件名
    n += 1
new_workbook.save('f:/file_name.xlsx')              # 保存在F盘下,生成file_name.xlsx文件
import os
import pandas as pd

path = 'F:\\Temp\\animal\\animal_photos\\'
names = []
# 读指定路径下的文件和文件夹
for name in os.listdir(path):
    names.append(name)

data = pd.DataFrame({'名称':names})
print(data)

# CSV
data.to_csv(fr"{path}file_name.csv",index=False)
# xlsx
writer=pd.ExcelWriter(fr'{path}file_name.xlsx')
data.to_excel(writer,sheet_name='fileName ',index=False)
writer.save()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐