Python中文件操作和文件夹操作的学习笔记
目录
- 1 前言
- 2 工作目录设置
- 设置工作目录:
- 获取当前运行文件目录
- 将工作目录重置为当前运行文件的父目录
- 遍历文件夹中所有的子文件(包含子文件、孙文件):
- 3 判断文件(夹)是否存在
- 4 文件读写
- 4.1 获取文件扩展名——os.path.splitext()
- 4.2 获取文件(夹)路径的尾部——os.path.basename()
- 4.3 获取此路径中的文件名(尾部最后一个文件名)
- 4.4 获取路径中的文件name
- 4.4 Youki常用文件类型的读写
- 4.4.1 TXT文件读写
- 4.4.2 JSON文件读写
- `.json`写文件
- `.json`追加写文件
- 5 文件夹操作代码
- 新建文件夹
- 删除某个文件夹
- 判断string是否是文件夹
- 遍历文件夹中所有的子文件(不包含孙文件):
- 6 判断两个文件是否相同
- 7 临时文件
1 前言
Python中文件和文件夹操作还是十分重要的~
2 工作目录设置
设置工作目录:
首先可以查看一下工作目录,
# 查看当前的工作目录
print(os.getcwd())
如果工作目录不正确,可以用os.chdir()函数来进行修改;
获取当前运行文件目录
os.path.dirname(__file__)
将工作目录重置为当前运行文件的父目录
os.chdir(os.path.dirname(__file__))
遍历文件夹中所有的子文件(包含子文件、孙文件):
# 遍历当前文件夹的直接子文件
for root, dirs, files in os.walk(path):for file in files:# 获取文件所属目录print(root)# 获取文件路径print(os.path.join(root, file))
3 判断文件(夹)是否存在
可以使用pathlib
中的方法(使用了面向对象的方式):
from pathlib import Path
my_file = Path("/path/to/file")if my_file.is_file():# file exists
if my_file.is_dir():# directory exists
if my_file.exists():# file or directory exists
4 文件读写
4.1 获取文件扩展名——os.path.splitext()
使用函数os.path.splitext()获取file字符串的扩展名;
4.2 获取文件(夹)路径的尾部——os.path.basename()
其实我之前先看到的是os.path.split()
函数,
关于os.path.split()
的解释,我们可以看看python的官方文档:
而os.path.basename()
其实就是返回os.path.split()
的第二个返回值,所以直接使用os.path.basename()
就可以了;
4.3 获取此路径中的文件名(尾部最后一个文件名)
os.path.basename(path)
4.4 获取路径中的文件name
Path写法:
Path(__file__).stem
4.4 Youki常用文件类型的读写
4.4.1 TXT文件读写
在将多行列表数据写入.txt
文件时,使用f.writelines()
函数,因为f.writelines()
函数会比f.write()
函数效率更高一些;
4.4.2 JSON文件读写
.json
写文件
# 以json格式写入文件
with open(json_file, "w") as f:json.dump(data, f)
.json
追加写文件
# 将打开方式设置为
with open(json_file, "a") as f:json.dump(data, f)
这里我们看看《菜鸟教程》中对a
追加模式的解释,
模式
a
: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
5 文件夹操作代码
新建文件夹
# 创建文件夹
os.mkdir(folder)
删除某个文件夹
if os.path.isdir(dir):shutil.rmtree(dir)
判断string是否是文件夹
# 创建文件夹
assert os.path.isdir("path/folder")
遍历文件夹中所有的子文件(不包含孙文件):
# 遍历当前文件夹的直接子文件
for file in os.listdir(root):print(file)
6 判断两个文件是否相同
示例代码如下:
import filecmp# 如果两边路径的头文件都存在,进行比较
try:status = filecmp.cmp("a.json", "b.json")# 为True表示两文件相同if status:print("Files are the same")# 为False表示文件不相同else:print("Files are different")
# 如果两边路径头文件不都存在,抛异常
except IOError:print("Error:" + "File not found or failed to read")
7 临时文件
可以使用tempfile
模块来生成临时文件,请参考《Python tempfile(临时文件)》;
Python中文件操作和文件夹操作的学习笔记相关推荐
- python中简述对象和类的关系_Python学习笔记(七)对象和类
什么是对象 Python中所有的数据都是以对象的形式存在,无论是简单的数字类型还是复杂的代码模块.在Python中,当我们想要创建属于自己的对象或者修改已有对象的行为时,才需要关注对象的内部实现细节. ...
- python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解
一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...
- python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...
文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...
- python应用中调用spark_在python中使用pyspark读写Hive数据操作
1.读Hive表数据 pyspark读取hive数据非常简单,因为它有专门的接口来读取,完全不需要像hbase那样,需要做很多配置,pyspark提供的操作hive的接口,使得程序可以直接使用SQL语 ...
- 从Python中的另一个文件调用函数
本文翻译自:Call a function from another file in Python Set_up: I have a .py file for each function I need ...
- python中如何打开csv文件_Python对CSV文件的处理
原标题:Python对CSV文件的处理 在接口自动化测试中,把测试的数据存储到csv的文件也是一种很不错的选择,下面就详细的介绍如何实现CSV文件内容的读取和如何把数据写入到CSV的文件中.在Pyth ...
- 用python中re.sub()替换文件中指定字符串
用python中re.sub()替换文件中指定字符串 1.正则表达式re.sub()的用法 sub(pattern,repl,string,count=0,flag=0) 1)pattern正则表达式 ...
- python中JSON转XML文件
python中JSON转XML文件 # 接收前台给的json数据 jsonData = json.loads(request.POST.get("jsonData")); # 接收 ...
- Python中整数移位及二进制串操作
Python中整数移位及二进制串操作 最近一个项目涉及到电压数据的接收和可视化处理.其中电压数据是由FPGA通过TCP协议传输的二进制流,软件接收端需要安装数据帧格式进行解析后处理.由于嵌入式组的FP ...
- python word 操作 doc 文件格式转docx 格式 学习笔记
python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...
最新文章
- 数据库SQL Server
- 马斯克的火箭又炸了,这次可能怪美国宇航管理局:因督导员迟到,星舰原型SN11被迫在浓雾中发射...
- P2709 小B的询问
- 使用ASP.NET Core 3.x 构建 RESTful API - 3.3.3 ProblemDetails
- 头条号个人中心登录_头条号平台上线「插入小程序」功能
- return 、break 和 continue的区别
- 在C#中对列表/数组进行碎片整理——关闭所有空白
- 坐标定位手机元素_CSS 是如何影响浏览器元素在文档中的排列?
- HDU 1026 广度优先搜索,BFS+路径的记录
- 现在的孩子为什么厌学的那么多?孩子厌学了怎么办?
- python猫狗大战pytorch_深度学习实战---猫狗大战(pytorch实现)
- python开发_xml.etree.ElementTree_XML文件操作
- Hadoop Hive基础sql语法
- XHTML下css+div编写
- QQ是成年人的“不老神仙水”
- mysql 联合查询_MySQL联合查询
- Oracle使用Shell脚本导出Excel表格
- 峰值信噪比PSNR~均方差MSE matlab实现
- 手动实现直方图匹配(python)
- java 并口和串口_串行接口和并行接口
热门文章
- asp.net 页面数据导入word模板
- background:url(./images.png) no-repeat 0 center的用法
- BZOJ.2555.SubString(后缀自动机 LCT)
- Bootstraptable源码
- django高级之点赞、文章评论及上传文件
- 阿根廷点杀荷兰,24年后再进决赛
- 20160417_无为_常州
- IOS发送带附件的邮件
- 【计算机网络】Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)
- 还被python收智商税?做大数据的朋友告诉我月薪2w的方法