本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Basic/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接: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一同使用,在原功能基础上增加同时读写功能 |
-
文件读取:
Python提供了3个常用的文件读取方法:
方法 |
描述 |
<file>.read(size=-1) | 从整个文件内容中读入前size长度的字符串或字节流 |
<file>.readline(size=-1) | 从文件中读入一行内容,如果给出参数,读入该行前size长度的字符串或字节流 |
<file>.readlines(hint=-1) |
从文件中读入所有行,以每行为元素形成列表,如果给出参数,则读入hint行 |
-
文件写入:
方法 | 描述 |
<file>.write() | 向文件写入一个字符串或字节流 |
<file>.writelines(lines) | 将一个元素全为字符串的列表写入文件 |
<file>.seek(offset) | 根据offset值改变当前文件操作指针的位置,0 表示文件开头,1 表示当前位置,2 表示文件结尾 |
文件使用结束后需要使用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__
方法。
本篇文章来源于微信公众号: 码农设计师