文件的读取与写入
读取一个文件
filepath='d:/note1.txt' #定义一个变量,存放文件位置
方案一,改成'd:/note1.txt'
方案二,改成r'd:\note1.txt'
方案三,改成'd:\note1.txt'
file1=open(filepath) #读取一个文件,r是默认的读取模式,当读取时可以省略
neirong=file1.read() #读取文件内容
neirong=file1.readlines() #读取文件内容,返回值是列表,每一行是一个元素
neirong=file1.readline() #一次读取一行
print(neirong)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 14: illegal multibyte sequence
如果遇到这个问题,那么需要设置编码,先在pycharm里设置,settings里的editor里的file encodings将文字设置为不乱码的格式
另外文件中的格式可能也需要修改,比如将文件的utf-8格式改为GB2312格式
file1=open(filepath,'w') #清空之前的内容写入
file1.write('危楼高百尺,手可摘星辰.不敢高声语,恐惊天上人.') #写入到文件中的内容
file1.close() #使用open方法时,在语句结束时应该加上close方法,避免浪费内存
file1=open(filepath,'a') #追加写入
file1.write('沉舟侧畔千帆过,病树前头万木春.') #写入到文件中的内容
file1.close() #使用open方法时,在语句结束时应该加上close方法,避免浪费内存
file1=open(filepath,'a+')
r+,可以同时读取与写入,如果文件不存在,则报错,写入时是覆盖写入
w+,可以同时读取与写入,如果文件不存在,会生成一个文件,写入时是清空写入
a+,可以同时读取与写入,如果文件不存在,会生成一个文件,写入时是追加写入
file1.write('尼古拉斯赵四')
file1.close()
filepath2='d:/note2.txt'
file2=open(filepath2,'w+')
file2.write('我欲乘风归去,又恐琼楼玉宇,高处不胜寒.')
file2.seek(0) #将光标移动到文件首位
print(file2.read())
file2.close()
seek(参数1,参数2) 参数1用来控制光标偏移几位,参数2缺省为0,如果写1或者2,只能用于二进制模式
0表示从文件开头开始计算,1表示从光标的当前位置开始计算,2表示从文件末尾开始计算
除了open方法之外,其实python也可以使用with oepn方法
with open(filepath2,'w+')as file2,open ('d:/note3.txt','w+') as file3:
file2.write('起舞弄清影,何似在人间.')
file3.write('汉皇重色思倾国,御宇多年求不得.')
场景1,将1到100的数字写入文件.
with open(filepath2,'w+') as file2:
for i in range(1,101):
if i==100:
file2.write(str(i))
else:
file2.write(str(i)+',') #write方法传的是字符串类型
思考题,将九九乘法表写入到文件中