首页Python【Python基础】25....

【Python基础】25.文件操作


本系列文章配套代码获取有以下三种途径:

  • 可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):

https://returu.github.io/Python_Basic/lab/index.html
链接:https://pan.baidu.com/s/1x2Ynh_VibPY2u-HWTaJo8w?pwd=mnsj 提取码:mnsj
  • 前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Basic

—————————————————

Python能够以文本和二进制两种方式处理文件。

1.文件基本操作:

文件基本操作一般分为打开文件、读写文件、关闭文件三个步骤。

1.1 打开文件:

使用open()函数打开文件,并将该文件与一个程序变量建立关联,函数格式如下:

1<程序变量名> = open(<文件名> , <打开模式>)

其中,文件名可以使文件的实际名字,也可以是包含完整路径的名字;打开模式用于控制使用何种方式打开文件,Python提供了以下7种基本的打开模式:

打开模式
描述
‘r’

只读模式,默认值

如果文件不存在返回FileNotFoundError异常

‘w’

覆盖写模式

如果文件不存在则创建,存在则完全覆盖

‘x’

创建写模式

如果文件不存在则创建,存在则返回FileExistsError异常

‘a’

追加写模式

如果文件不存在则创建,存在则在文件最后追加内容

‘b’ 二进制文件模式
‘t’ 文本文件模式,默认值
‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
1.2 读写文件:
当文件打开后,根据打开模式对其进行相应的读写操作。
如果是文本文件方式打开返回字符串,如果是二进制方式打开则返回字节流。
  • 文件读取:

Python提供了3个常用的文件读取方法:

方法
描述
<file>.read(size=-1) 从整个文件内容中读入前size长度的字符串或字节流
<file>.readline(size=-1) 从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串或字节流
<file>.readlines(hint=-1)
从文件中读入所有行,以每行为元素形成列表,如果给出参数,则读入hint行
  • 文件写入:

Python提供了以下3个常用的文件写入方法:
方法 描述
<file>.write() 向文件写入一个字符串或字节流
<file>.writelines(lines) 将一个元素全为字符串的列表写入文件
<file>.seek(offset) 根据offset值改变当前文件操作指针的位置,0 表示文件开头,1 表示当前位置,2 表示文件结尾
1.3 关闭文件:

文件使用结束后需要使用close()函数方法将其关闭,从而释放文件的使用授权,函数格式如下:

1<程序变量名>.close()

2.文件基本操作实例:

2.1 写入文件:

 1>>> filename = input("请输入需要写入的文件名称:")
2
3# 打开文件
4>>> f = open(filename , "w+")
5>>> ls = ["济南市n" , "青岛市n" ,"菏泽市n" ,"烟台市n"]
6
7# 将列表ls写入文件 
8>>> f.writelines(ls)
9# 将文件操作指针调整到文件开始位置
10>>> f.seek(0)
11# 将单个字符串写入文件
12>>> f.write("山东省")
13# 关闭文件
14>>> f.close()

输入test.txt文件名,运行代码,在当前目录下就可以看到该文件。

2.2 读取文件:

读取上一步写入的test.txt文件。

 1>>> file = open("test.txt" , "r")
2# 读取整个文件
3>>> f1 = file.read()
4# 将文件操作指针调整到文件开始位置
5>>> file.seek(0)
6# 从文件读入一行内容
7>>> f2 = file.readline()
8# 将文件操作指针调整到文件开始位置
9>>> file.seek(0)
10# 从文件中读入所有行
11>>> f3 = file.readlines()
12>>> f1
13'山东省n青岛市n菏泽市n烟台市n'
14>>> f2
15'山东省n'
16>>> f3
17['山东省n''青岛市n''菏泽市n''烟台市n']

2.3 二进制文件读写:

如果文件是以二进制形式打开,则只能以二进制形式写入,否则会报错。

1# 如果文件是以二进制形式打开,则只能以二进制形式写入,否则会报错。
2>>> fb = open('fb.txt' , 'wb+')
3>>> fb.write(b'Python')
4>>> fb.close()

3.使用with语句:

Python中内置了with语句,可以让代码更加简化和有效,格式如下:

1with <表达式(open()函数)> as <变量名>:
2    <语句块>

with语句通过缩进来表示其作用域,当with语句作用域内的语句执行完毕,就会自动调用close()函数将文件关闭,从而在某种程度上降低因疏忽造成的程序错误。

 1>>> filename = input("请输入需要写入的文件名称:")
2>>> ls = ["济南市n" , "青岛市n" ,"菏泽市n" ,"烟台市n"]
3
4>>> with open(filename , "w+") as f:
5...     # 将列表ls写入文件 
6...     f.writelines(ls)
7...     # 将文件操作指针调整到文件开始位置
8...     f.seek(0)
9...     # 将单个字符串写入文件
10...     f.write("山东省")

输入test2.txt文件名,运行代码,在当前目录下就可以看到该文件。

  • with语法的原理:

在Python中,支持with语法的对象必须有__enter__方法和__exit__方法。

在with语句执行过程中,紧跟with后面的语句被求值后,返回对象的__enter__方法会被调用,该方法的返回值将会被赋值给as后面的变量。当with语句作用域中的代码执行完毕,将调用前面返回对象的__exit__方法。


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments