python批量读写百千文件

目录

os.listdir(文件夹名称)

os.walk(目录名)

os.rename(原名,新名)

endswith(文件后缀)


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命令时,仍然不能使用正斜线'/')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值