【Python】文件及目录

文章目录


概要

本文主要将了打开文件的函数open()的参数,以及文件对象的函数,基于Python的os模块对目录进行操作,还有Pandas的基础知识。


一、文件对象的函数

1.1 open()函数

将某一文本文件打开为txtFile:

txtFile = open(filename, mode, buffering=-1, ecoding=None)

filename是文件名,也就是说当文本文件与py文件在同一目录下时如此打开,在不同目录下时文件名应该是文本文件的完整路径。mode是打开模式由两个字母组成,第一个字母是操作模式,第二个是文件打开类型。buffering是缓冲策略,负数表示按系统默认,0表示不缓存,1表示缓存,其他正整数指定缓冲区的大小。ecoding是文件的编码形式。文件打开模式字母意义如下:

字母 代表含义
" r " 只读模式(默认)
" w " 覆写模式(没有这个文件则创建,有则覆盖)
" a " 追加模式(没有这个文件则创建,有则追加内容)
" + " 与上面三个字母配合,表示可读可写
" t " 文本类型
" b " 二进制类型

1.2 文件对象的函数

函数 意义
open() 打开文件
resd(size) 以指定字节数读取,没有或为负数则读取全部内容
resdline() 读取整行
resdlines() 读取全部行并返回列表
write(s) 把字符串s写入文件,默认编码是utf-8 windows的默认编码是GBK,用ecoding="GBK"
writelines(s) 向文件写入元素全为字符串的列表,如需换行需自己写入换行符
seek(off, whence=0) 设置文件读写当前位置
tel() 返回文件当前读写位置
close() 关闭文件

1.3 with语句

在每次完成文件的操作后都需要调用close()函数来关闭文件,防止资源占用等问题,但手动调用太麻烦,可以使用with来代替。with是一个简洁高效的上下文管理器,以后会知道,他除了能管理文件还能管理网络连接。他的基本语法如下:

python 复制代码
with open() as file:	# file可以是任何名字用来表示后续在with里面对文件的操作              
	pass

二、基于os和os.path模块的目录操作

以下函数的参数除非标注均为存文件路径的变量,可以是绝对路径也可以是相对的。

函数 意义
os.listdir() 返回文件绝对路径
os.getcwd() 返回当前工作目录
os.walk(top) 从top目录开始遍历子目录及文件名,返回当前遍历到的目录路径,当前目录的子目录名,当前目录的下的文件
os.path.exists() 判断文件是否存在
os.path.join(path, name) 拼接文件路径
os.path.splitext() 返回文件名和扩展名
os.path.basename() 提取文件名
os.path.diename() 提取文件路径

三、基于Pandas的文件处理

3.1 Pandas读写各种类型文件

3.1.1 Pandas对文件读取的函数

读取函数 写入函数 文件类型
read_csv to_csv 读写CSV文件
read_excel to_excel 读写Excel文件
read_json to_json 读写JSON文件

3.1.2 Pandas读取文件函数的参数

参数 含义
sep 或 delimiter 列分割符
header 列名,如果文件中已经有列名则传None
index_col 作为索引的列名
skiprows 要跳过的文件头行数
na_values 用于处理缺失数据的字符串
encoding 字符编码方式

其他章节的内容

序列
集合与字典
函数
模块和包
异常
文件

相关推荐
foundbug9998 分钟前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
XDH_CS12 分钟前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
小短腿的代码世界31 分钟前
Qt实时盈亏计算深度解析:从持仓数据到动态盈亏展示
开发语言·qt
小康小小涵1 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python
lzjava20241 小时前
Python的函数
开发语言·python
Awesome Baron2 小时前
skill、tool calling、MCP区别
开发语言·人工智能·python
Python私教2 小时前
GenericAgent PySide6 桌面应用深度解析:悬浮按钮 + 聊天面板的原生 Qt 方案
开发语言·数据库·qt
矢志航天的阿洪2 小时前
用 MATLAB 控制 STK Aviator:从零搭建一个 AWACS 支援作战场景
开发语言·matlab
澈2072 小时前
STL迭代器:容器遍历的万能钥匙
开发语言·c++
测试员周周2 小时前
【AI测试系统】第4篇:告别硬编码!基于 Markdown + Python 的 Skill 引擎设计:让 AI 测试系统拥有无限扩展的“灵魂”
人工智能·python·测试