Python处理文件的6个常用代码,使用频率很高,值得收藏

liftword4个月前 (12-30)技术文章42

日常工作中,我们经常会遇到一些查找、存储文件的问题,比如文件合并、文件分解等,这些问题涉及到对文件进行操作处理。对此,Python的OS库提供了很多功能模块供使用,本文整理了其中6个使用频率很高的常用代码,基本能满足大部分需求。另外,通过对一个excel文件合并案例代码进行解析,进一步加深印象,建议收藏。

一、6个常用代码

1、得到指定文件路径:os.path.dirname(带路径文件名)

查找处理文件要调用os库,和openpyxl一样,先用import 导入。

import os

file = r'e:\python\删除最小值.xlsx'

pwd = os.path.dirname(file)

print(pwd)

运行结果为:e:\python

也可从分离文件名后的列表中提取:os.path.split(带路径文件名)[0]

2、得到当前文件名:os.path.dasename(带路径文件名)

import os

file = r'e:\python\删除最小值.xlsx'

pwdn = os.path.basename(file)

print(pwdn)

运行结果为:删除最小值.xlsx

也可从分离文件名后的列表中提取:os.path.split(带路径文件名)[1]

3、判断文件路径是否存在:os.path.exists(带路径文件名)

import os

file = r'e:\python\删除最小值.xlsx'

pwdbool = os.path.exists(file)

print(pwdbool)

运行结果为:true

若给定的路径文件不存在,则返回false

4、获得指定文件夹下所有文件:print(os.listdir(文件夹路径))

import os

pwdns = os.listdir(r'e:\python')

print(pwdns[1])

运行结果:8.py 为'e:\python'文件夹下第2个文件(或文件夹)名。

5、获得文件后缀:os.path.splitext(文件名)

import os

pdn= os.path.splitext('试验.py')

print(pdn[1])

运行结果:.py,若最后一句改为print(pdn[0]),则得到文件名。

6、拼接路径和文件名:os.path.join(路径,文件名)

f2 = os.path.join(f1, '汇总.xlsx')

运行结果:'e:\python\汇总\汇总.xlsx'

二、文件合并案例代码解析:

在下面的文件夹“e:\python\汇总”里,有2个xlsx文件和一个txt文件,要求先判断当前文件夹内是否存在“汇总.xlsx”文件,若不存在则新建一个,若存在则直接打开使用,要求将其他.xlsx文件的第1个表单数据,汇总至“汇总.xlsx”文件。

1、导入os库和openpyxl库,给定当前路径为模块参数

import os

import openpyxl

if __name__ == "__main__":

tj(r'e:\python\汇总')# 指定文件夹作为参数,**文末有提醒事项"

2、在tj模块内写代码,先判断是否存在汇总.excle文件,若无则创建

def tj(f1):

f2 = os.path.join(f1, '汇总.xlsx')# 组合文件路径,**文末有提醒事项"

bl = os.path.exists(f2)# 判断'e:\python\汇总\汇总.xlsx'是否存在,存在返回true,不存在返回false

if bl is False:

wb = openpyxl.Workbook()# 如果不存在,创建新excel文件

ws = wb.active

ws.title = "汇总"# 设置当前表单名为“汇总”

wb.save(f2)# 将刚才创建的文件保存为:'e:\python\汇总\汇总.xlsx'

wb = openpyxl.load_workbook(f2)# 打开'e:\python\汇总\汇总.xlsx'文件

ws = wb['汇总']

ks = ws.max_row# 得到汇总表单的最大行,**文末有提醒事项"

3、遍历指定文件夹,将目标.xlsx文件放入列表k备用

pns = os.listdir(f1)# 获得f1文件夹下带后缀文件名列表

k = []

for i in range(len(pns)):

hz = os.path.splitext(pns[i])[1]# 获得f1文件夹下文件名列表

qz = os.path.splitext(pns[i])[0]# 获得f1文件夹下文件后缀列表

if hz == '.xlsx' and qz != '汇总':

k.append(pns[i])# 将后缀为.xlsx,且文件名不是汇总的文件名放入K列表

5、逐个打开目标文件,将第一个表单内的数据复制粘贴在汇总表内汇总表单内

m = 0

for w in k:

f3 = os.path.join(f1, w)

wb1 = openpyxl.load_workbook(f3)

ws1 = wb1._sheets[0]# 选第一个表单,默认数据在第一个表单,也可根据表单名进行选取。

for jj in range(1, ws1.max_row):

m += 1

for j in range(2, ws1.max_column + 1):

ws.cell(ks+m, j).value = ws1.cell(jj+1, j).value

ws.cell(ks+m, 1).value = ks+m-1# 重新写序号

ws.cell(ks+m, ws1.max_column+1).value = w# 写入当前行数据的来源文件名

wb.save(f2)# 保存文件

6、运行代码完成,此时汇总文件内已经合并了其他两个文件的数据。

三、几个细节

1、tj(r'e:\python\汇总'):给定参数时,路径前面有个字母“r”,为消除转义字符功能用。

2、os.path.join(f1, w):路径和文件名组合,也可用f1+'\\'+w的方法,但只能限定于在打开文件的代码里用,单独使用会出现双“\”符号,导致地址无法使用。

3、ws1.max_row:得到表单的最大行数,当末行没有数据,只是设置过单元格格式,也被视为表单的最大行,这点不如VBA的end(3).row,需注意。

相关文章

Python语言的12个基础知识点小结(python语言基础总结)

python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重、字典排序、字典、列表、字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进...

在Python中定义Main函数(python main函数语法)

多编程语言都有一个特殊的函数,当操作系统开始运行程序时会自动执行该函数。这个函数通常被命名为main(),并且依据语言标准具有特定的返回类型和参数。另一方面,Python解释器从文件顶部开始执行脚本,...

Python基础之:Python中的模块(python模块总结)

简介Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了。这个时候我们需要将python程序保存在一个文件里。通常这个文件是以.py结尾的。对于大型的应用程...

python.exe 和 pythonw.exe 的区别

(区分.py、.pyw、.pyc 文件)最近也在学习python,针对python中的一些问题做下记录,希望大家共同成长; Windows系统搭建好Python的环境后,进入Python的安装目...

Python操作目录(python编程目录)

获取当前工作目录获取执行命令的位置路径拼接路径拆分文件重命名删除文件复制文件遍历文件夹下的文件判断文件是否存在判断目录是否存在获取当前工作目录import sys print(sys.path[0]...

Python中使用pandas进行文件读取和写入方法详解

Pandas 是 Python 的一个功能强大且灵活的三方包,可处理标记和时间序列数据。还提供统计方法、启用绘图等功能。Pandas 的一项重要功能是能够编写和读取 Excel、CSV 和许多其他类型...