【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 字符编码方式

其他章节的内容

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

相关推荐
夏幻灵3 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码4 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
bkspiderx5 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆5 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光5 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
码云数智-园园6 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西7 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨7 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
全栈练习生7 小时前
AI Agent 沙箱
python·ai
徐小黑ACG7 小时前
Golang 基础05 结构体struct
开发语言·算法·golang