目录

  • 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中文件操作和文件夹操作的学习笔记相关推荐

  1. python中简述对象和类的关系_Python学习笔记(七)对象和类

    什么是对象 Python中所有的数据都是以对象的形式存在,无论是简单的数字类型还是复杂的代码模块.在Python中,当我们想要创建属于自己的对象或者修改已有对象的行为时,才需要关注对象的内部实现细节. ...

  2. python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解

    一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...

  3. python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...

    文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...

  4. python应用中调用spark_在python中使用pyspark读写Hive数据操作

    1.读Hive表数据 pyspark读取hive数据非常简单,因为它有专门的接口来读取,完全不需要像hbase那样,需要做很多配置,pyspark提供的操作hive的接口,使得程序可以直接使用SQL语 ...

  5. 从Python中的另一个文件调用函数

    本文翻译自:Call a function from another file in Python Set_up: I have a .py file for each function I need ...

  6. python中如何打开csv文件_Python对CSV文件的处理

    原标题:Python对CSV文件的处理 在接口自动化测试中,把测试的数据存储到csv的文件也是一种很不错的选择,下面就详细的介绍如何实现CSV文件内容的读取和如何把数据写入到CSV的文件中.在Pyth ...

  7. 用python中re.sub()替换文件中指定字符串

    用python中re.sub()替换文件中指定字符串 1.正则表达式re.sub()的用法 sub(pattern,repl,string,count=0,flag=0) 1)pattern正则表达式 ...

  8. python中JSON转XML文件

    python中JSON转XML文件 # 接收前台给的json数据 jsonData = json.loads(request.POST.get("jsonData")); # 接收 ...

  9. Python中整数移位及二进制串操作

    Python中整数移位及二进制串操作 最近一个项目涉及到电压数据的接收和可视化处理.其中电压数据是由FPGA通过TCP协议传输的二进制流,软件接收端需要安装数据帧格式进行解析后处理.由于嵌入式组的FP ...

  10. python word 操作 doc 文件格式转docx 格式 学习笔记

    python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...

最新文章

  1. 数据库SQL Server
  2. 马斯克的火箭又炸了,这次可能怪美国宇航管理局:因督导员迟到,星舰原型SN11被迫在浓雾中发射...
  3. P2709 小B的询问
  4. 使用ASP.NET Core 3.x 构建 RESTful API - 3.3.3 ProblemDetails
  5. 头条号个人中心登录_头条号平台上线「插入小程序」功能
  6. return 、break 和 continue的区别
  7. 在C#中对列表/数组进行碎片整理——关闭所有空白
  8. 坐标定位手机元素_CSS 是如何影响浏览器元素在文档中的排列?
  9. HDU 1026 广度优先搜索,BFS+路径的记录
  10. 现在的孩子为什么厌学的那么多?孩子厌学了怎么办?
  11. python猫狗大战pytorch_深度学习实战---猫狗大战(pytorch实现)
  12. python开发_xml.etree.ElementTree_XML文件操作
  13. Hadoop Hive基础sql语法
  14. XHTML下css+div编写
  15. QQ是成年人的“不老神仙水”
  16. mysql 联合查询_MySQL联合查询
  17. Oracle使用Shell脚本导出Excel表格
  18. 峰值信噪比PSNR~均方差MSE matlab实现
  19. 手动实现直方图匹配(python)
  20. java 并口和串口_串行接口和并行接口

热门文章

  1. asp.net 页面数据导入word模板
  2. background:url(./images.png) no-repeat 0 center的用法
  3. BZOJ.2555.SubString(后缀自动机 LCT)
  4. Bootstraptable源码
  5. django高级之点赞、文章评论及上传文件
  6. 阿根廷点杀荷兰,24年后再进决赛
  7. 20160417_无为_常州
  8. IOS发送带附件的邮件
  9. 【计算机网络】Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)
  10. 还被python收智商税?做大数据的朋友告诉我月薪2w的方法