Python文件操作方法大总结

简介: Python文件操作方法大总结

文件操作必不可少的是open函数:对文件读写之前,需要先打开文件,获取文件句柄

注意:open() file() 尽量使用open(),Python3以后不支持file()了


1、open方法原型解释

open(file_name[,access_mode][,buffering])


(1)参数说明


file_name:一个包含了你要访问的文件路径及文件名称的字符串值。尽量使用绝对路径


access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r)


r,只读


w:写之前会清空文件的内容


a:追加的方式,在原本内容中继续写


buffering:先写到缓存中


如果buffering的值被设置为0,就不会有寄存;如果值为1,访问文件时会缓存行;如果值位大于1的整数,表明了这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。该参数也是非强制性的。


(2)返回值


该语句表示返回的File_object是一个指向文件的指针(一个文件对象)文件句柄。当以只读模式(r)打开一个不存在的文件时,就会报IOError异常(文件不存在),但如果是以写或追加模式(w/a/a+)打开一个不存在的文件时,默认会创建该文件,但如果是所在路径中有目录不存在,也会报IOError异常


常用方法列表

操作 说明
os.getcwd() 得到当前工作目录,即当前Python脚本工作的目录路径
os.listdir() 返回指定目录下的所有文件和目录名
os.remove() 函数用来删除一个文件


os.removedirs(r"c\python") 删除多个目录
os.path.isfile() 检验给出的路径是否是一个文件
os.path.isdir() 检验给出的路径是否是一个目录
os.path.isabs() 判断是否是绝对路径


os.path.exists() 检验给出的路径是否真地存
os.path.split() 返回一个路径的目录名和文件名
os.path.splitext() 分离扩展名


os.path.dirname() 获取路径名
os.path.basename() 获取文件名
os.system() 运行shell命令
os.getenv() 与os.putenv() 读取和设置环境变量


os.linesep  给出当前平台使用的行终止符,Windows使用'rn',Linux使用'n'而Mac使用'r'
os.name 指示你正在使用的平台,对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'


os.rename(old, new) 重命名:
os.makedirs(r"c:\python\test") 创建多级目录
os.mkdir("test") 创建单个目录
os.stat(file) 获取文件属性
os.chmod(file) 修改文件权限与时间戳
os.exit() 终止当前进程
os.path.getsize(filename) 获取文件大小
os.mkdir("file") 创建目录


shutil.copyfile("oldfile","newfile") 复制文件, oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
shutil.copytree("olddir","newdir") 复制文件夹, olddir和newdir都只能是目录,且newdir必须不存在
os.rename("oldname","newname") 重命名文件(目录),文件或目录都是使用这条命令
shutil.move("oldpos","newpos") 移动文件(目录)
os.remove("file") 删除文件
os.rmdir("dir") 删除目录, 只能删除空目录
shutil.rmtree("dir") 空目录、有内容的目录都可以删
os.chdir("path") 转换目录, 换路径
os.mknod("test.txt") 创建空文件


2、mode文件操作模式


r,w,a

r+可读可写

w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

模式列表


操作 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )


3、通过open获取到的文件句柄可以对文件作的其他操作


1)fp.closed


判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false


(2)fp.mode


输出读写模式。返回被打开文件的访问模式。


(3)fp.name:


返回文件的名称。


(4) fp.softspace


如果用print输出后,是否跟一个空格符,false不打印,true则打印。


(5)fp.close()


刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。


(6)flush()


把缓冲区中的内容持久化写到磁盘里


缓存区写满的情况,系统会自动调用flush()方法。


调用flush的时机:写入了多少长度的数据,或者间隔了多长的时间


如果没有flush(),持久化内容丢失


(7)next()

for i in fp:
    print i


把一个file用for...in file这样的循环遍历语句时,就是调用next()函数来实现。

fp=open(fileName,'r')
print fp.next()
print fp.next()
print fp.fileno() #判断当前操作的文件句柄是哪一个number
fp.close()











相关文章
|
24天前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
|
14天前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
WK
|
11天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
65 36
|
13天前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
21天前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
58 2
11种经典时间序列预测方法:理论、Python实现与应用
|
17天前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
25天前
|
Linux Python
Python获得本机本地ip地址的方法
【10月更文挑战第8天】 socket模块包含了丰富的函数和方法,可以获取主机的ip地址,例如gethostbyname方法可以根据主机名获取ip地址,gethostbyname_ex方法可以获得本机所有ip地址列表,也可以使用netifaces模块获取网卡信息。
25 0
|
26天前
|
SQL 安全 数据库
Python防止SQL注入攻击的方法
Python防止SQL注入攻击的方法
35 0
|
27天前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
28 0
|
27天前
|
Python
Python中threading模块的常用方法和示例
Python 的 `threading` 模块提供了多线程编程的能力,允许同时执行多个线程。主要类包括 `Thread`、`Lock` 和 `Condition`。`Thread` 类用于创建和管理线程,`Lock` 用于同步线程,防止资源竞争,`Condition` 用于线程间协调。本文介绍了这些类的常用方法及示例代码,帮助你更好地理解和使用多线程编程。
24 0