文件

存储在计算机的存储设备中的一组数据序列就是文件。

不同类型的文件通过后缀名进行区分。

文本文件:由于编码格式的不同所占磁盘空间的字节数不同。

二进制文件:没有统一的编码,文件直接由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 2023-12-24 21:58  会飞的金鱼  阅读(21)  评论(0)    收藏  举报