python文件操作相关知识

1.文件操作

  • 路径相关
  • 上下文管理
  • 文件的打开模式
  • 文件操作的常见功能

学前知识背景回顾:

  • 字符串类型(str):程序中表示文字信息,本质是unicode编码中的二进制。
  • 字节类型(bytes):
  • (1):可表示文字信息,本质上市utf-8等编码的二进制。
  • (2):可表示原始二进制(图片,文件等信息)。

1.1 路径相关

>获取当前程序的绝对路径方法

# 1.导入文件操作的函数模块os
import os# 2.获取当前运行的py脚本所在路径
abs = os.path.abspath(__file__)# 3.获取当前文件目录的上一级目录路径
file_path = os.path.dirname(abs)# 4.对文件路径进行拼接
file_path_join = os.path.join(file_path,'new_file','xx.txt')# 5.判断路径是否存在
new_file = os.path.exists(file_path)# 6.创建文件夹(可用于判断路径不存在时使用)
os.makedirs(file_path)# 7.删除文件或文件夹
os.remove(file_path)# 8.拷贝文件夹或文件
shutil.copytree(file_path)# 9.文件或文件夹重命名
shutil.move()

1.2上下文管理

  • 在对文件操作时,推荐使用with方法的管理文件文件的打开与关闭。(避免每次使用文件后忘记关闭文件而导致资源浪费)
# with 使用方法
with open(file_path,mode='w',encoding='utf-8')as file_object:# 可支持同时对多个文件的上下文管理
with()as file_object1,open()as file_object2:

1.3文件打开模式

文件操作涉及的操作模式有如下几种:

  • 只读:r、rt、rb(存在,读;不存在,报错)
  • 只写:w、wt、wb(存在,清空再写;不存在,创建再写)
  • 尾部追加只写:a、at、ab(存在,尾部追加;不存在,创建再写)
  • 只写:x、xt、xb(存在,报错;不存在,创建再写)(不常用)
  • 读写:r+、rt+、rb+( 默认光标:起始位置)
  • w+、wt+、wb+(默认光标位置:起始位置(清空文件))
    a+、at+、ab+(默认光标位置:末尾;将光标位置重置于起始位置也会在继续在末尾追加内容。)
# 不同模式下对信息处理的方式不同
-b模式:如wb、rb、ab等模式下表示是对文件的原始二进制进行处理,(如对一些图片,视频文件等操作时使用)
-t模式:如wt、rt、at则是在二进制基础上转换成字符串信息再进行相关操作的。

1.4文件操作的常见功能

with open(file_path,mode=r,encoding='utf-8')as file_object:
# 1、read,读#(1)读所有【常用】data = file_object.read()#(2)读n个字符(字节)data = file_object.read(3)# 2、readline,读一行data = file_object.readline()# readlines,读所有行,每行作为列表的一个元素data = file_object.readlines()#循环,读取大文件(readline加强版)【常见】for line in file_object:pass# 3、write,写(根据文件模式对应写入内容的表示格式)file_object.write()# 4、flush,刷到硬盘file_object.flush()
# 5、移动光标位置(按字节位数算)file_object.seek(3)
# 6、获取当前光标位置(按字节位数算)file_object.tell()

2.特殊格式文件的相关操作

  1. csv格式文件
  2. ini格式文件
  3. xml格式文件
  4. Excel格式文件

2.1csv格式文件

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
如以下格式文件:

股票代码,股票名称,当前价,涨跌额,涨跌幅,年初至今
SH601778,N晶科,6.29,+1.92,-43.94%,+43.94%
SH688566,吉贝尔,52.66,+6.96,+15.23%,+122.29%
...
  • 针对csv格式文件,我们可以先通过字符分割操作将其内容转换位列表元素先。

2.2 ini格式文件

ini文件是Initialization File的缩写,平时用于存储软件的的配置文件。例如:MySQL数据库的配置文件。
内容如下文所示:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=py-mysql-bin[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid[client]
default-character-set=utf8
  • 这种格式是可以直接使用open来出来,考虑到自己处理比较麻烦,所以Python为我们提供了更为方便的方式。
# 导入可以更方便处理ini格式文件的模块功能
import configparserconfig = configparser.ConfigPasrser()
config.read(file_path,encoding='utf-8')# 一些常用的ini格式文件操作功能
# 1、获取所有节点result = config.sections()
# 2、获取节点下的健值result = config.items('某节点')
# 3、是否存在节点result = config.has_section(节点名)# 4、检查、添加,删除节点..

2.3 XML格式文件

可扩展标记语言,是一种简单的数据存储语言,XML 被设计用来传输和存储数据。

  • 存储,可用来存放配置文件,例如:java的配置文件。
  • 传输,网络传输时以这种格式存在,例如:早期ajax传输的数据、soap协议等。

文件内容格式如下:

<data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2023</year><gdppc>141100</gdppc><neighbor direction="E" name="Austria" /><neighbor direction="W" name="Switzerland" /></country><country name="Singapore"><rank updated="yes">5</rank><year>2026</year><gdppc>59900</gdppc><neighbor direction="N" name="Malaysia" /></country>
</data>

常用的xml文件操作内容(具体代码实现用到时再查资料…)

  • 读取文件和内容
  • 读取节点数据
  • 修改和删除节点
  • 构建文档

2.4 Excel格式文件

Python内部未提供处理Excel文件的功能,想要在Python中操作Excel需要按照第三方的模块。

pip install openpyxl

此模块中集成了Python操作Excel的相关功能,接下来我们就需要去学习该模块提供的相关功能即可。
常用Excle操作方法
(1)读Excel

  • 读sheet
  • 读sheet中单元格的数据
  • 读合并的单元格
from openpyxl import load_workbook
wb = load_workbook(file_path)# 读sheet相关操作
# 1.获取excel文件中的所有sheet名称
wb.sheetnames#2.选择sheet,基于sheet名称
sheet = wb["名称"]# 3.选择sheet,基于索引位置
sheet = wb.worksheets[0]#4.循环所有的sheet
for name in wb.sheetnames:pass
for sheet in wb:
pass# 读sheet中单元格的数据的相关操作
# 1.获取第N行第N列的单元格(位置是从1开始)
cell = sheet.cell(1, 1)# 2.获取某个单元格
c1 = sheet["A2"]# 3.第N行所有的单元格
for cell in sheet[1]:pass# 4.所有行的数据(获取某一列数据)
for row in sheet.rows:print(row[0].value, row[1].value)# 5.获取所有列的数据
for col in sheet.columns:print(col[1].value)# 读合并的单元格的相关操作pass

写Excel的相关操作

  • 原Excel文件基础上写内容。
  • 新创建Excel文件写内容。
from openpyxl import workbook# 创建excel且默认会创建一个sheet(名称为Sheet)
wb = workbook.Workbook()# 将excel文件保存到p2.xlsx文件中
wb.save("files/p2.xlsx")

在了解了如何读取Excel和创建Excel之后,后续对于Excel中的sheet和cell操作基本上都相同。
>具体的Excel文件操作方式在以后需要用时再查阅相关代码操作实现。

3.压缩文件

基于Python内置的shutil模块可以实现对压缩文件的操作。

import shutil# 1. 压缩文件
"""
# base_name,压缩后的压缩包文件
# format,压缩的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".
# root_dir,要压缩的文件夹路径
"""
# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')# 2. 解压文件
"""
# filename,要解压的压缩包文件
# extract_dir,解压的路径
# format,压缩文件格式
"""
# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')

总结

  1. 文件相对路径,在使用相对路径时可能会执行程序的目录不同,导致路径出问题。所以,如若使用相对路径请务必清楚当前运行程序所在目录。
  2. 文件绝对路径(推荐),不要将文件路径写死,而是基于 os 模块中的相关功能自动化获取绝对路径,以方便项目移动到其他文件或电脑上。
  3. 路径转义
  • 手动写路径,需要自己在路径中添加 r 或 加入 \ 来进行处理。
  • 基于os.path.join拼接,内部自动处理,不需要手动处理。

Python文件操作相关的知识笔记总结相关推荐

  1. 【Python】学习笔记总结3(Python文件操作)

    文章目录 三.Python文件操作 1.打开`open('文件名','打开模式')` 2.写操作 3.读操作 4.With上下文管理对象 小结 案例 5.文件定位 三.Python文件操作 1.打开o ...

  2. python学习笔记:python文件操作与异常处理

    1.python文件操作:打开.关闭.读取.写入,合并excel等 1.1创建文件:open()函数打开文件,若文件存在则直接打开:若不存在则创建文件并打开 open('F:/pycodes/cunz ...

  3. 6-DoF问题相关基础知识笔记

    6-DoF问题相关基础知识笔记 一.什么是6-DoF,即6个自由度是什么? 二.PnP算法 三.BOP挑战与官方数据集简介 BOP数据集 BOP toolkit BOP挑战的介绍页面 四.相关论文 C ...

  4. Python文件操作学习总结

    Python读写文件 1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open( ...

  5. python打开鼠标指定文件夹_学会python文件操作,鼠标好像没用了,学习python第10天...

    电影是人类对未来的向往,在<黑客帝国>中,我们看到了一个数字化的社会,而当你学会python文件操作,你也就离你向往的黑客近一点了,用程序来直接影响电脑上的其他文件,只需要几行代码就搞定. ...

  6. 简述python文件操作的流程_Python文件操作详解

    这篇文章主要介绍了Python 文件操作的详解及实例的相关资料,希望通过本文大家能够理解掌握Python 文件操作的知识,需要的朋友可以参考下 Python 文件操作的详解及实例 一.文件操作 1.对 ...

  7. Python文件操作详解(一)

    今天继续给大家介绍Python相关知识,本文主要内容是Python文件操作详解. 一.Python文件处理简介 使用Python可以编写程序处理文件,Python可以处理的文件值得是任何存储在辅助存储 ...

  8. 【Python编程】九、Python文件操作

    欢迎关注博主 Mindtechnist 或加入[Linux C/C++/Python社区]一起探讨和分享Linux C/C++/Python/Shell编程.机器人技术.机器学习.机器视觉.嵌入式AI ...

  9. Python文件操作注意事项

    今天继续给大家介绍Python相关知识,本文主要内容是Python文件操作注意事项. 一.文件操作流程注意事项 在文章Python文件操作详解(一)中,我们讲解过,文件操作的流程是打开文件--操作文件 ...

最新文章

  1. mysql 存储过程 输出warning_如何抑制MySQL存储过程的输出?
  2. Android小項目之---時間線程應用(附源碼)
  3. Xorequ(BZOJ3329+数位DP+斐波那契数列)
  4. 服务器搭建:3.1、openresty图片压缩之GraphicsMagick
  5. [OS复习]程序装入技术、简单存储管理技术
  6. JQuery------鼠标双击时,不选中div里面的文字
  7. 原创 | 面试官问我同步容器(如Vector)的所有操作一定是线程安全的吗?我懵了!...
  8. 第一阶段SCRUM冲刺-05
  9. [家里蹲大学数学杂志]第187期实数集到非负实数集的双射有无穷多个间断点
  10. 大数据挖掘是什么,数据挖掘的方法有哪些?
  11. abab的四字成语_带abab的四字成语大全
  12. Recall(召回率), Specificity(特异度),Precision(精确度), Sensitivity(灵敏度)
  13. 基于云计算运维毕业设计与制作
  14. 计算机专业职称入深户,深圳市人才引进入深户新政策
  15. axios 的简化写法
  16. PHP 常用英语精简1
  17. win10能上网显示未连接到服务器,Win10网络正常但浏览网页无法连接到互联网怎么办?...
  18. 大学毕业4年-回顾和总结(9)-股权投资1年,给自己一个答卷(好狗狗、皇包车、职业梦、比呀比、易途8)(创业有风险,投资需谨慎)...
  19. 800套绝美PPT模板免费下载
  20. 【微服务|Sentinel】实时监控|RT|吞吐量|并发数|QPS

热门文章

  1. Java程序的国际化和本地化介绍
  2. 大型SAR卫星星座设计——Python STK联合仿真
  3. MaskRCNN RPN网络分析
  4. HTTP中的API是什么?
  5. 教大家用Python做一个任何视频都能看的软件
  6. 新手学习制作次世代 3D 游戏角色很难么?
  7. 金蝶EAS BOS开发之扩展表应用
  8. usb被注册表禁用了,如何启用?
  9. Python+statsmodels实现多元线性回归和泊松回归
  10. 逻辑漏洞和越权(待补充)