# 只要牵扯到文件的操作,都是字符串
# 打开文件用到‘w’,源文件内容会被清空(相当于新建)
# sprip() 取消换行符
# 换行符2个字节
一、打开 (win gbk mac/Linux utf-8)
f = open('歌词')
# f:文件操作符 文件句柄 文件操作对象
# 习惯叫 f file f_obj f_handler fh
# print(f.wriable()) 判断文件是否可写
# print(f.readable()) 判断文件是否可读
f.write('552716') # 写文件的时候需要写到数字,需要把数字转换成字符串
# open 打开文件是依赖了操作系统提供的途径
# 操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码
找到文件
#找到文件详解:文件与py的执行文件在相同路径下,直接用文件名字就可以打开
#:文件与py的执行文件在不同路径下,用绝对路径找到文件
#文件的路径,需要用取消转译的方式来表示:1、\ 2、r‘’
#如果以写文件的方式打开一个文件,那么不存在的文件会被创建,存在的文件之前的内容会被清空
f = open(r'C:UsersAdministratorDesktopday5作业参考.txt','w',encoding='utf-8') f.write('啦啦啦') f.close()
关闭文件
#操作系统级别的关闭文件资源: f.close() 必须写
#del f 主动释放了一个python程序内存中的变量 可写可不写
二、读文件(默认了读模式)
1、读文件的第一种方式(读全部)
#打开文件
# f = open(‘歌词’,‘r’,encoding='utf-8')
f = open('歌词',encoding= 'utf-8')
1、读文件的第一种方式:read方法,用read方法会一次性的读出文件中的所以有内容
conten = f.read()
print(content)
f.close()
2、读一部分内容
#读一部分内容:read(n),指定读n个单位
print(f.read(5))
3、第三种方式:按照行读
每次执行readline就会往下读一行
content = f.readline() print(content.strip()) # strip 去掉空格、制表符、换行符 #print(1) #-->1 print('1 ') #-->1
4、第四种:readlines(读所有行)
content = f.readlines()
print(content) # ['apple 10 3 ', 'tesla 100000 1 ', 'mac 3000 2 ', 'lenovo 30000 3 ', 'chicken 10 3 ']
5、第五种(最常用)
for l in f: print(l.strip()) apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3
三、rb
### 一般情况下:文件操作,要么读,要么写,很少会用到读写、写读同时用的
常用的:
r、w、a
rb、wb、ab。不需要指定编码了
五、光标的移动
1、read
1. 文件打开方式为文本模式时,代表读取3个字符
2. 文件打开方式为b模式时,代表读取3个字节
2、其余的文件内光标移动都是以字节为单位如seek,tell,truncate
注意:
1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
f.seek(0) 移动到最开始
f.seek(0,2)移动到末尾
2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果