文件
存储在计算机的存储设备中的一组数据序列就是文件。
不同类型的文件通过后缀名进行区分。
文本文件:由于编码格式的不同所占磁盘空间的字节数不同。
二进制文件:没有统一的编码,文件直接由0或1组成,需要使用指定的软件才能打开。
文件的操作步骤:
1,打开文件
变量名=open(filename,mode,encoding)
2,操作文件
变量名.read()
变量名.write(s)
3,关闭文件
变量名.close()
def my_write(): # 打开文件 file=open('a.txt','w',encoding='utf-8') # 写入数据 file.write('北京欢迎你') # 关闭文件 file.close() def my_read(): # 打开文件 file=open('a.txt','r',encoding='utf-8') # 写入数据 s=file.read() print(s) # 关闭文件 file.close() if __name__ == '__main__': my_write() my_read()
文件的状态和操作过程

| 文件的打开方式 | 模式说明 |
| r | 以只读模式打开,文件指针在文件的开头,如果文件不存在,程序抛异常 |
| rb | 以只读模式打开二进制文件,如图片文件 |
| w | 覆盖写模式,文件不存在则创建,文件存在则内容覆盖 |
| wb | 覆盖写模式写入二进制数据,文件不存在则创建,文件存在则覆盖 |
| a | 追加写模式,文件不存在则创建,文件存在,则在文件最后追加内容 |
| + | 与w/r/a等一同使用,在原功能的基础上增加同时读写功能 |
| 读写方法 | 描述说明 |
| file.read(size) | 从文件中读取size个字符或字节,如果没有给定参数,则读取文件中的全部内容 |
| file.readline(size) | 读取文件中的一行数据,如果给定 参数,则为读取这一行中的size个字符或字节 |
| file.readlines() | 从文件中读取所有内容,结果为列表类型 |
| file.write(s) | 将字符串s写入文件 |
| file.writelines(lst) | 将内容全部为字符串的列表lst写入文件 |
| file.seek(offset) | 改变当前文件操作指针的位置英文占一个字节,中文gbk编码占两个字节,utf-8编码占三个字节 |
def my_write(s): # 打开文件 file=open('b.txt','a',encoding='utf-8') # 写入内容 file.write(s) file.write('\n') # 关闭文件 file.close() def my_write_lst(file,lst): f=open(file,'a',encoding='utf-8') # a 追加写 f.writelines(lst) # 多行写入 f.close() def my_read(filename): f=open(filename,'w+',encoding='utf-8') f.write('你好好\n欢迎光临') f.seek(0) # 设置指针位置 #s=f.read() # 读取内容 #s=f.read(2) # 读取两个字符 #s=f.readline() # 读取一行数据 s=f.readlines() # 读取多行,返回列表数据 print(type(s),s) f.close() def copy(file_scr,new_file_src): f1=open(file_scr,'rb') f2=open(new_file_src,'wb') s=f1.read() # 读取文件内容 f2.write(s) # 写入新文件 f2.close() # 文件先使用的后关闭 f1.close() if __name__ == '__main__': # my_write('北京欢迎你') # my_write('好朋友') # lst=['hello\t','welcome\t','world\n','python'] # 列表中的元素内容必须是字符串 # my_write_lst('c.txt',lst) #my_read('d.txt') copy('./google.png','./ch1/google.png')
with语句:
又称上下文文管理器,在处理文件时,无论是否产生异常,都能保证with语句执行完毕后关闭已经打开的文件,这个过程是自动的,无需手动操作。
语法结构:
with open(...) as file: pass
def my_write(file_src): with open(file_src,'w',encoding='utf-8') as file: file.write('北京欢迎你') def my_read(file_src): with open(file_src,'r',encoding='utf-8') as file: print(file.read()) def copy(file_scr,new_file_src): with open(file_scr,'r',encoding='utf-8') as f1: with open(new_file_src,'w',encoding='utf-8') as f2: f2.write(f1.read()) if __name__ == '__main__': my_write('aa.txt') my_read('aa.txt') copy('./aa.txt','./ch1/aa.txt')
posted on
浙公网安备 33010602011771号