文件可以分为文本文件和二进制文件(比特0/1)
采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解析为字节流(byte)
文件的打开与关闭
#t表示以文本形式打开
x = open('python.txt','rt')
print(x.readline())
x.close()
#b表示以二进制形式打开
y = open('python.txt','rb')
y.close()
print(y.readline())
二进制文件由于没有统一的字符编码,只能当作字节流而不能看作是字符串
文件的打开
open()提供7种打开模式
文件使用结束后要用**close()**方法关闭
‘r+’ ‘a+’ ‘rb’ ‘rt’
文件的读写
文件读取的4种方法
#读取文件所有行
x = open('python.txt','rt')
for i in x.readlines():
print(i)
#逐行处理文件内容
x = open('python.txt','rb')
for i in x:
print(i)
一次性读取到列表会占用很多内存,影响程序执行速度
直接 for i in x:好些
二进制方式打开文件,换行符只是一个符号,对应一个字节’\n’
文本方式打开,将换一行
文件写入3种方法
写入一个字符串时记得添加引号
fname = input('输入文件名:')
z = open(fname,'r+')
z.write('cc')#添加字符时记得加引号
将元素为字符串的列表写入文件
fname = input('输入文件名:')
z = open(fname,'r+')
ls = ['java','c++','web']
z.writelines(ls)
for i in z:
print(i)
z.close()
程序并没有输出写入的列表内容,但是打开txt文件可以看到写入内容
前面还报了个’no writable’错误,原因是因为用了’rb’模式打开,没有写入权限,改成‘r+’ 就可以了