Python批处理:文件操作

news/2024/10/16 0:20:08

一、为什么要使用python处理文件

文件处理管理可分为两种,一种是可视化、手动化,学习成本低,处理数量有限。另一种是编程化、自动化,有一定学习成本,可以基于逻辑处理。计算机的常项是对既定规则的发挥,这个发挥作用于"批量"这个层面。

二、相对路径与绝对路径

相对路径:被操作的文件相对你当前运行的程序来说的路径叫相对路径。

绝对路径:文件在计算机绝对的路径或者说位置叫做绝对路径。

 三、python处理文件的常用命令

python文件处理的三个常用库:

import os  #查、改
import shutil #复制、剪切
import zipfile #打包、压缩 

os的常用方法,path路径系列

os.path.abspath(参数)       #获取当前文件的绝对路径 c:/project/X/XXX.txt
os.path.isdir(参数)             #获取当前路径文件是否为文件夹-布尔
os.path.isfile(参数)             #获取当前路径文件是否为文件-布尔
os.path.basename(参数)    #获取当前路径的结尾名字 c:/project/xxx.txt
os.path.split(参数)             #以路径文件名切分列表['c:/project/','xxx.txt']
os.path.join(参数)              #(‘aa’,'bb','x.txt')aa/bb/x.txt
os.path.getsize(参数)         #以字节单位(B)返回当前文件大小换算KB除以1024 换算MB再除以1024

输出压缩文件的绝对路径

import osprint(os.path.abspath('abc.zip'))

 

输出结果:

判断一个路径是否是目录

import osprint(os.path.isdir('abc.zip'))

 

输出结果:

import osprint(os.path.isdir('D:\PythonProject\Python_001\pythonProject'))

 

输出结果: 

判断是否为文件

import osprint(os.path.isfile('abc.zip'))

输出结果:

 输出文件名

import osprint(os.path.basename('D:\\PythonProject\\Python_001\\pythonProject\\abc.zip'))

 

输出结果:

 切分路径与文件名

import osprint(os.path.split('D:\\PythonProject\\Python_001\\pythonProject\\abc.zip'))

 

输出结果:

连接文件路径

import osprint(os.path.join('D:\\','PythonProject\\Python_001\\pythonProject','abc.zip'))

 输出结果:

os常用的方法(读、改、查系列) 

os.getcwd()                    #获取当前工作绝对路径  c:/project/X/
os.listdir(参数)                 #获取当前路径下所有文件/文件夹
os.remove(参数)              #删除文件(注意不是目录)
os.removedirs(参数)         #删除多级目录,目录必须要为空(注意!从底层往上层全部删除)
os.rmdir(参数)                  #删除一个目录,目录必须要为空
os.mkdir/makedirs(参数)  #创建一级或多级目录,这里s是多级

shutil下,常用方法(复制、剪切系列)

shutil.rmtree(文件夹)                      #删除路径下的所有文件、目录,无论是否有文件(特别注意这个跟os.remove rmdir removedirs的区别)
shutil.copytree(源目录,目标目录)     #文件夹全量(包含下属所有层次)复制
shutil.copy(源文件,目标文件)           #文件复制
shutil.move(源文件夹,目标文件夹)    #文件夹/文件剪切

使用zipfile完成压缩和解压 

压缩文件

import os
import zipfile# 建立一个压缩写入对象
z=zipfile.ZipFile('abc.zip','w')
for x in os.listdir('file200'):
#具体向压缩包写入操作z.write('file200'+os.sep+x)
z.close()

 程序结果运行如下:

解压文件

import zipfile# 建立一个压缩写入对象
z=zipfile.ZipFile('abc.zip','r')
for file in z.namelist():
#具体向压缩包写入操作z.extract(file,"tmp/")

 程序结果运行如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26399.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

开源相机管理库Aravis例程学习(六)——camera-features

本文针对官方例程中的:04-camera-features做简单的讲解目录简介例程代码函数说明arv_camera_get_integerarv_camera_get_string 简介 本文针对官方例程中的:04-camera-features做简单的讲解。并介绍其中调用的arv_camera_get_integer,arv_camera_get_string。 aravis版本:0…

sqlilabs通关02-中级篇:less23-37

less23:注释符绕过 先看代码 ​​可以看到对字符进行替换,将 #号和--替换成了空通过sql语句,可以知道闭合符号是单引号然后就可以开始尝试了,由于这关是get,直接修改url的参数即可 ?id=1 #正常访问 #绕过 ?id=1 and 1=1 ?id=1 and sleep(3)%20 and%20 1=1 #说明可以使…

中国39个行业产业链全景图

找了很久的各个行业产业链,今天终于发现这个整理得非常好的39个行业产业链全景图。主要行业基本都在里面了,每个行业上下游产业都包括哪些一张图你就看明白了! 新能源汽车产业链全景 机器人产业链全景图 房地产产业链全景图 稀土产业链全景图 电子竞技产业链全景图 钛白粉产…

Lettuce 实战之连接超时问题

问题 使用lettuce作为redis连接池,在访问redis时,偶尔会抛出RedisCommandTimeoutException,但隔一会儿又好了。 为什么lettuce有自动重连机制,却还是会出现连接超时的问题?为什么lettuce在连接断掉后,没有立即重连,而是需要等待十多分钟才重新连接? 在lettuce client和…

开源医疗大模型排行榜: 健康领域大模型基准测试

多年来,大型语言模型 (LLMs) 已经发展成为一项具有巨大潜力,能够彻底改变医疗行业各个方面的开创性技术。这些模型,如 GPT-3,GPT-4 和 Med-PaLM 2,在理解和生成类人文本方面表现出了卓越的能力,使它们成为处理复杂医疗任务和改善病人护理的宝贵工具。它们在多种医疗应用中…

一个用Python将视频变为表情包的工具

这是一个将视频转变为表情包的工具,现实生活中当我们看到一段搞笑的视频,我们可以将这段视频喂给这段程序,生成gif表情包,这样就可以用来舍友斗图了 1、一些限制 1、这个程序不能转化超过15秒以上的视频,因为占用的内存较高,会被终端杀死(除非你的计算机性能很好,也许1…

SpringBoot2.x整合Redis Sentinel

redis sentinel搭建之后,在spring-boot项目中集成。 配置 在pom.xml文件中添加如下依赖配置(这里spring-boot版本2.2.5),这个版本中,默认使用lettuce作为redis连接池。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spri…

PLC程序中的配方应用

建立ARRAYDB集合配方需要的所有元素结构,组成一个UDT(包含范围最全) 新建一组ARRAY DB,元素的个数就是配方需要的副本的个数 数组DB勾选仅存储在装载内存中,以便数据量大的配方不占用数据工作存储器空间,节省资源 在ARRAY DB的起始值处填写配方的具体值 1200不支持ARRAY …