Python文件操作

举报
运维@大白鹅 发表于 2022/02/24 17:42:13 2022/02/24
【摘要】 Python这个优秀的语言有很多亮点,其中一大亮点就是有惊人的文件 操作功能,可以实现打开,读取,写入,创建文件等,比如几秒内处理完上百张excel表格。使用Python进行自动化运维,数据清洗,爬虫都离不开文件操作。

是什么

Python这个优秀的语言有很多亮点,其中一大亮点就是有惊人的文件

操作功能,可以实现打开,读取,写入,创建文件等,比如几秒内处理完上百张excel表格。使用Python进行自动化运维,数据清洗,爬虫都离不开文件操作。

怎么用

目录

  1. 打开文件
  2. 读取文件
  3. 写入/创建文件
  4. 关闭文件
  5. 光标定位方法
  6. 截断文件
  7. 重命名文件
  8. 删除文件
  9. 附加功能:编码参数
  10. 结论

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 byte

Process 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。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。