文件的读取与写入

读取一个文件

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方法传的是字符串类型

思考题,将九九乘法表写入到文件中