python第八天
Posted daoda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第八天相关的知识,希望对你有一定的参考价值。
1 文件的初识
#1. 打开文件,得到文件句柄并赋值给一个变量 f=open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) #默认打开模式就为r #2. 通过句柄对文件进行操作 data=f.read() #3. 关闭文件 f.close()
错误的处理
解决方式一: ‘C:Users金鑫Desktop111.txt‘ 凡是路径会发生化学反应的地方,多加一个 这样就是前面对后面的进行转译,告诉计算机这个只是想单纯的表示路径而已。
解决方式二: r‘C:Users金鑫Desktop111.txt‘ 在路径的整体前面加一个r。(推荐)
相对路径与绝对路径:
1.绝对路径:从磁盘根目录开始一直到文件名
2.相对路径:用一个文件夹下的文件,相对于当前这个程序所在的文件而言.如果在同一个文件中,则相对路劲就是这个文件名.如果再上一层文件夹则要使用../相对路径下,你就可以直接写文件名即可。
2文件的读
r 模式
以只读方式打开文件,文件的指针将会放在文件的开头。是文件操作最常用的模式,也是默认模式,如果一个文件不设置mode,那么默认使用r模式操作文件。
举例说明:
f = open(‘path1/小娃娃.txt‘,mode=‘r‘,encoding=‘utf-8‘) msg = f.read() f.close() print(msg) 结果: 高圆圆 刘亦菲 张柏芝 杨紫 王菲
通过上面的例子可以看出来,我将小娃娃这个文件的内容全部读取出来了,那么读一个文件还可以怎么读取呢?下面我们研究一下不同的读文件的方法。
2.1.1 read()
read()将文件中的内容全部读取出来;弊端 如果文件很大就会非常的占用内存,容易导致内存奔溃.
= open(‘path1/小娃娃.txt‘,mode=‘r‘,encoding=‘utf-8‘) msg = f.read() f.close() print(msg) 结果: 高圆圆 刘亦菲 张柏芝 杨紫 王菲
2.1.2 read(n)
read()读取的时候指定读取到什么位置
在r模式下,n按照字符读取。
f = open(‘path1/小娃娃.txt‘,mode=‘r‘,encoding=‘utf-8‘) msg = f.read(3) msg1 = f.read() f.close() print(msg) print(msg1) 结果: 高圆圆 刘亦菲 张柏芝 杨紫 王菲
2.1.3 readline()
readline()读取每次只读取一行,注意点:readline()读取出来的数据在后面都有一个
f = open(‘path1/小娃娃.txt‘,mode=‘r‘,encoding=‘utf-8‘) msg1 = f.readline() msg2 = f.readline() msg3 = f.readline() msg4 = f.readline() f.close() print(msg1) print(msg2) print(msg3) print(msg4) 结果: 高圆圆 刘亦菲 张柏芝 杨紫
解决这个问题只需要在我们读取出来的文件后边加一个strip()就OK了
f = open(‘path1/小娃娃.txt‘,mode=‘r‘,encoding=‘utf-8‘) msg1 = f.readline().strip() msg2 = f.readline().strip() msg3 = f.readline().strip() msg4 = f.readline().strip() f.close() print(msg1) print(msg2) print(msg3) print(msg4) 结果: 高圆圆 刘亦菲 张柏芝 杨紫
2.1.4 readlines()
readlines() 返回一个列表,列表里面每个元素是原文件的每一行,如果文件很大,占内存,容易崩盘。
f = open(‘log‘,encoding=‘utf-8‘) print(f.readlines()) f.close() # 结果[‘666666 ‘, ‘fkja l; ‘, ‘fdkslfaj ‘, ‘dfsflj ‘, ‘df;asdlf ‘, ‘ ‘, ]
2.1.5 for循环
可以通过for循环去读取,文件句柄是一个迭代器,他的特点就是每次循环只在内存中占一行的数据,非常节省内存。
f = open(‘../path1/弟子规‘,mode=‘r‘,encoding=‘utf-8‘) for line in f: print(line) #这种方式就是在一行一行的进行读取,它就执行了下边的功能 print(f.readline()) print(f.readline()) print(f.readline()) print(f.readline()) f.close()
以上是关于python第八天的主要内容,如果未能解决你的问题,请参考以下文章