目录
os.listdir(文件夹名称)
返回一个列表,其中包含了指定文件夹(目录)中所有文件和子文件夹名字。
注意:1、得到的文件名中不包含完整文件路径。2、不能得到子文件夹中的文件名。
import os
x = os.listdir('d:/demo')
print(x)
获取该文件夹下所有xlsx文件的工资表的某单元格数据:
import xlwings as xw
import os
import time
app = xw.App()
x = os.listdir('d:/demo')
print(x)
for i in x:
if i[-5:] == '.xlsx':
wb = app.books.open('d:/demo/'+i)
ws = wb.sheets['工资单']
print(ws.range('C2').value,ws.range('C6').value)
time.sleep(3)
wb.close()
app.quit()
os.walk(目录名)
遍历指定目录及其所有子目录,并返回各目录中的文件列表和子目录列表。
每执行一次循环,os.walk就会进入一个目录,并返回一个元组给循环变量。该元组共含三个元素:(当前走到的目录路径,该目录中子目录名列表,该目录中文件名列表)
import os
for i in os.walk('d:/demo')
print(i)
获取当前文件夹下所有层级所有文件夹的路径:
import os
for i in os.walk('d:/demo'):
r = i[0] #获取文件路径
f = i[2] #获取文件名
for s in f:
print(r + '/' + s) #拼接路径和文件名
import xlwings as xw
import os
import time
app = xw.App()
for r,d,f in os.walk('d:/demo'):
for s in f:
if i.lower().endswith('.xlsx'): #endswith()方法判断字符串是否以指定内容结尾
wb = app.books.open('d:/demo/'+i)
ws = wb.sheets['工资单']
print(ws.range('C2').value,ws.range('C6').value)
time.sleep(3)
wb.close()
app.quit()
os.rename(原名,新名)
根据‘原名’找到文件,并将其修改为新名称。注意:两个参数应尽量使用完整路径,比如'd:/demo/a.jpg';如果只写'a.jpg'可能找不到文件。
import os
os.rename('d:/demo/a.jpg','d:/demo/b.jpg')
案例:将文件夹内所有图片中文名变更为拼音
import os
import pinyin
for r,d,f in os.walk('d:/现场记录'):
for s in f:
new_name = pinyin.get(s,format='strip')
os.rename( r + '/' + s,r + '/' +new_name)
采用pinyin库
pinyin.get(原文) 可以返回对应拼音字符(带有声调标号);
pinyin.get(原文,format='strip') 可以返回对应拼音的英语字符,不带有声调标号,
注意:运行程序前请先确认操作系统允许当前用户修改目录文件名。
endswith(文件后缀)
endswith('.txt')方法判断字符串是否以指定内容(比如'.txt')结尾
友情提示:Linux与MacOS中,目录与子目录间用斜线‘/’分隔,比如:/home/yy/demo/a.py
而windows中则默认使用反斜线'\'作为路径分隔符,比如:D:\Users\yy\demo\a.py
但是windows同样支持斜线'/'作为分隔符,甚至可以与反斜线混用:D:\Users/yy\demo\a.py。
(注意:在某些特殊场合比如调用Dir命令时,仍然不能使用正斜线'/')