1. 文件1.1 打开文件1.2 文件对象的方法1.3 文件的关闭1.4 文件的读取和定位1.5 文件的写入2. 文件系统3. pickle模块零基础入门学Python系列内容的学习目录 → \rightarrow →零基础入门学Python系列内容汇总。
需要学习的基础知识有:文件、文件系统、pickle模块等。
1. 文件几种常用的文件格式:.exe是可执行文件格式,.txt是文本文件,.ppt是PowerPoint的专用格式等。
1.1 打开文件 在Python中,使用open()
函数来打开文件并返回文件对象,该函数的常用语法格式如下:
file = open(file_name [, mode='r' [ , buffering=-1 [ , enCoding = None ]]])
此格式中,用 [ ] 括起来的部分为可选参数,即可以使用也可以省略。其中,各个参数所代表的含义如下:
file:表示要创建的文件对象。file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。mode:可选参数,用于指定文件的打开模式。可选的打开模式如表1所示。如果不写,则默认以只读(r)模式打开文件。buffering:可选参数,用于指定对文件做读写 *** 作时,是否使用缓冲区。enCoding:手动设定打开文件时所使用的编码格式,不同平台的 eCoding 参数值也不同,以 windows 为例,其默认为 cp936(实际上就是 GBK 编码)。 使用open()
成功打开一个文件之后,它会返回一个文件对象,拿到这个文件对象,就可以读取或修改这个文件:
example1:>>># 先将record.txt文件放到Python的根目录下(如C:\Python)
>>>f= open(“record.txt”)
这样我们就成功打开了record.txt文件。
1.2 文件对象的方法打开文件并取得文件对象之后,就可以利用文件对象的一些方法对文件进行读取或修改等 *** 作。表2列举了平时常用的一些文件对象方法。
close()
方法用于关闭文件。如果你对文件进行了写入 *** 作,那么应该在完成写入之后关闭文件。因为Python可能会缓存我们写入的数据,但如果中途发生类似断电之类的事故,那些缓存的数据根本就不会写入到文件中。所以,为了安全起见,我们要养成使用完文件后立刻关闭的好习惯。
文件的读取方法很多,可以使用文件对象的 read()
和readline()
方法,也可以直接List(f)
或者直接使用选代来读取。read()
是按字节为单位进行读取,如果不设置参数,那么会全部读取出来,文件指针指向文件末尾。tell()
方法可以告诉我们当前文件指针的位置。
我们新建一个“小王子.txt”的文件,内容如下:
我们整天忙忙碌碌,
像一群群没有灵魂的苍蝇,
喧闹着,
躁动着,
听不到灵魂深处的声音。
时光流逝,
童年远去,
我们渐渐长大,
岁月带走了许许多多的回忆,
也消蚀了心底曾今拥有的那份童稚的纯真,
我们不顾心灵桎梏,
沉溺于人世浮华,
专注于利益法则,
我们把自己弄丢了。
example1:>>> f= open(“小王子.txt”, enCoding=‘utf-8’)
>>> f.read()
‘我们整天忙忙碌碌,\n像一群群没有灵魂的苍蝇,\n喧闹着,\n躁动着,\n听不到灵魂深处
的声音。\n时光流逝,\n童年远去,\n我们渐渐长大,\n岁月带走了许许多多的回忆,\n
也消蚀了心底曾今拥有的那份童稚的纯真,\n我们不顾心灵桎梏,\n沉溺于人世浮华,\n专
注于利益法则,\n我们把自己弄丢了。’
>>> f.tell()
395
使用seek()
方法可以调整文件指针的位置。seek(offset, from)
方法有两个参数,表示从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset字节。因此将文件指针设置到文件起始位置,使用seek(0, 0)即可:
>>> f.seek(0, 0)
0
>>> f.tell()
0
readline()
方法用于在文件中读取一整行,就是从文件指针的位置向后读取,直到遇到换行符(\n)结束。
>>> f.readline()
‘我们整天忙忙碌碌,\n’
之前我们学习过列表的强大,当时说什么都可以往里放,在这我们也可以把整个文件的内容放到列表中:
>>> List(f)
[‘像一群群没有灵魂的苍蝇,\n’, ‘喧闹着,\n’, ‘躁动着,\n’, ‘听不到灵魂深处的声音
。\n’, ‘时光流逝,\n’, ‘童年远去,\n’, ‘我们渐渐长大,\n’, ‘岁月带走了许许多多的
回忆,\n’, ‘也消蚀了心底曾今拥有的那份童稚的纯真,\n’, ‘我们不顾心灵桎梏,\n’, ’
沉溺于人世浮华,\n’, ‘专注于利益法则,\n’, ‘我们把自己弄丢了。’]
迭代读取文本文件中的每一行:
>>> f. seek(0, 0)
0
>>> for each_line in f:
print(each_line)
我们整天忙忙碌碌,
像一群群没有灵魂的苍蝇,
喧闹着,
躁动着,
听不到灵魂深处的声音。
时光流逝,
童年远去,
我们渐渐长大,
岁月带走了许许多多的回忆,
也消蚀了心底曾今拥有的那份童稚的纯真,
我们不顾心灵桎梏,
沉溺于人世浮华,
专注于利益法则,
我们把自己弄丢了。
如果需要写人文件,请确保之前的打开模式有’w’或’a’,否则会出错:
example1:>>> f= open(“文件.txt”)
>>> f.write("这是一段待写入的数据’)
Traceback (most recent call last):
file “<pyshell#41>”, line 1, in < module >
f.write(“这是一段待写入的数据”)
io.UnsupportedOperation: not writable
>>> f.close()
>>> f= open(“文件.txt”, “w”)
>>> f.write(“这是一段待写入的数据”)
10
再次打开“文件.txt”之后,会发现文本"这是一段待写入的数据"已写入文件中。但是要注意的是,使用‘w’模式写入文件,此前的文件内容会被全部删除。如果要在原来的内容上追加,一定要使用’a’模式打开文件。
2. 文件系统 接下来学习跟Pyhton的文件相关的一些十分有用的模块。例如使用random模块中的randint()
函数来生成随机数。
example1:>>>import random
>>> random.randint(0, 9)
1
>>> random.randint(0, 9)
5
>>> random.randint(0, 9)
7
OS模块是Operating System的缩写,也就是 *** 作系统。对于文件系统的访问,Pyhton一般是通过OS模块来实现的。表3中列举了OS模块中关于文件/目录常用的函数使用方法。
使用Python的picke模块可以非常容易地将列表字典这类复杂数据类型存储为文件。picke模块几乎可以把所有Python的对象都转化为二进制的形式存放,这个过程称为pickling,那么从二进制形式转换回对象的过程称为unpickling。
example1:>>> import pickle
>>> my_List =[123, 3.14,‘小明’, [‘其他列表’]]
>>> pickle_file= open(‘E:\python\ \my_List.pkl’, ‘wb’)
>>> pickle. dump(my_List, pickle_file)
>>> pickle_file.close( )
分析一下:这里希望把这个列表永久保存起来(保存成文件),打开的文件一定要以二进制的形式打开,后缀名可以随意,不过既然是使用pickle保存,为了今后容易记忆,建议还是使用.pkl 或.pickle。使用dump方法来保存数据,完成后记得保存,跟 *** 作普通文本文件一样。
程序执行之后E盘的python文件夹下会出现一个my List.pkl的文件,用记事本打开之后显示乱码(因为保存的是二进制形式),如下图所示。
在使用的时候只需用二进制模式先把文件打开,然后用load把数据加载进来:
example2:>>> import pickle
>>> pickle_file= open(‘E:\python\ \my_List.pkl’, ‘rb’)
>>> my_List = pickle.load(pickle_file)
>>> print(my_List)
[123, 3.14, ‘小明’, [‘其他列表’]]
以上是内存溢出为你收集整理的零基础入门学Python(八)—— 永久存储全部内容,希望文章能够帮你解决零基础入门学Python(八)—— 永久存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)