用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()