Python文件操作
是什么
Python这个优秀的语言有很多亮点,其中一大亮点就是有惊人的文件
操作功能,可以实现打开,读取,写入,创建文件等,比如几秒内处理完上百张excel表格。使用Python进行自动化运维,数据清洗,爬虫都离不开文件操作。
怎么用
目录
- 打开文件
- 读取文件
- 写入/创建文件
- 关闭文件
- 光标定位方法
- 截断文件
- 重命名文件
- 删除文件
- 附加功能:编码参数
- 结论
1、打开文件
使用Python内置的open()函数,通常需要给这个函数传递两个参数,一个是文件的路径,一个是打开的方式
open("","")
我们也可以只传第一个参数,默认为以读取模式打开文件
举个例子,我电脑桌面有一个名为file.txt的文件,使用Python打开
open("C:\Users\DBE\Desktop\file.txt")
这种打开方式等同于"r"读取模式
open("C:\Users\DBE\Desktop\file.txt","r")
当你要打开的文件与Python程序文件处在同一个目录时只需输入文件的名称即可,例如
open("file.txt")
“w” 写入模式,当使用写入模式打开文件,会删除这个文件中的数据,并向文件中写入指定数据,如果指定的文件不存在,则会创建出来
open("file2.txt","w")
“a” 追加模式,当使用追加模式打开文件,如果文件存在,会向原有数据的末尾添加指定的数据,如果指定的文件不存在,则会创建出来
open("file.txt","a")
”r+“ 使用读写模式打开文件,如果文件存在,不会删除文件的原有数据,如果文件不存在也不会创建文件
open("file.txt","r+")
“w+” 使用读写模式打开文件,如果文件存在,不会删除文件的原有数据,如果文件不存在会创建文件
open("file.txt","w+")
“a+” 使用读取和追加模式打开文件,如果文件存在,不会删除文件的原有数据,如果文件不存在会创建文件
open("file.txt","a+")
当你需要打开的文件的类型部署文本,而是二进制类型,比如图片、声音、视频、可执行文件等则需要在以上打开模式后加个"b",
open("file.png", "rb")
如果不加b会报错如下
Traceback (most recent call last):
File “/myFile/learnPython/Day_1/文件操作.py”, line 1, in <module>
print(open(“blog-1.png”,“r”).readlines())
File “/usr/local/lib/python3.10/codecs.py”, line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x89 in position 0: invalid start byteProcess finished with exit code 1
2、读取文件
以读取模式打开文件(file.txt文件中数据为123456)
file = open("file.txt","r")
print(file.read())
123456
打印5个字符
file = open("file.txt","r")
print(file.read(5))
12345
连续打印时,读取的结果是以上一次读取的位置作为中断,然后读取剩下的内容
file = open("file.txt","r")
print(file.read(3))
print(file.read(1))
123
4
readline() ,此方法的作用是每次执行此方法都会打印一行数据,直至到文件末行
先在file.txt中加入其他行来举例
line1
line2
line3
file = open("file.txt","r")
print(file.readline())
print(file.readline())
line1
line2
readlines() ,此方法的作用是将每一行的数据都作为列表元素
file = open("file.txt","r")
print(file.readlines())
['line1\n', 'line2\n', 'line3']
3、写入、创建文件
遵循打开文件的几种打开模式,直接举例
file = open("myfile.txt", "w")
file.write("Hello")
如果文件不存在,使用"w"或者"w+"模式会创建新文件
4、关闭文件
在Windows中,如果你一直打开文件而不关闭文件,最后会导致电脑又卡又慢,所以使用Python打开文件对应的关闭文件也十分重要,在我们使用open()打开文件后可以使用close()方法关闭文件
file = open("file.txt", 'r')
print(file.read())
file.close()
还有一种打开文件的方法不需要考虑关没关,就是使用with open,当执行完with中的操作后会自动调用close()方法
with open("file.txt", 'r') as f:
print(f.read())
5、光标定位方法
Python中内置了几个基本的方法用于我们在文件中使用游标定位
seek(),此方法作用是将光标改为指定位置
我们将光标位置设置到了起点
file = open("file.txt", "r")
print(file.read(3))
file.seek(0)
print(file.read(1))
lin
l
tell(),此方法作用是打印光标的当前位置
file = open("file.txt", "r")
print(file.read(3))
print(file.tell())
file.seek(0)
print(file.read(1))
lin
3
l
6、截断文件
使用truncate()方法可以将文件截断到需要的长度
file = open("file.txt", "r+")
print(file.read())
file.truncate(3)
print(file.read())
file.close()
line1
lin
7、文件重命名
文件重命名操作需要使用os模块中的rename()方法完成
rename()方法需要传递两个参数,第一个是当前文件名,第二个是新的文件名
import os
os.rename('file.txt', 'newfile.txt')
8、删除文件
使用os模块的remove()方法
import os
os.remove('myfile.txt')
9、编码参数
有时打开文件时因为编码问题会导致乱码或者报错,这时就需要我们指定编码格式
open("file.txt", "r", encoding = "utf-8")
10、结论
该篇介绍了使用Python文件操作,即对文件的读取、写入、创建、关闭、删除、重命名,还有修改光标的seek()和查看光标的tell。
- 点赞
- 收藏
- 关注作者
评论(0)