文件

open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)open中可以有的参数

文件的打开和关闭

a=’文件所在位置.文件名‘
打开文件的方式open(’文件所在位置.文件名‘或者a)
如果打开的文件的程序和程序在同一个文件夹则可以直接写文件名。
print(打开的文件)可以输出文件对象的信息。
read()方法可以将文件中的内容读取保存到一个字符串中。格式如a.read()
文件使用完后要用close()方法关闭

with…as

with open(文件)as 别名:
文件只会在with…as下打开运行,不需要特地的去关闭他,末尾自动关闭在外面的代码也无法读取里面打开的文件。

文件的读取

  • 用open()打开的文件文件可以分为两种类型,一种时纯文本(使用utf-8编写的文本文件)另一种时=时二进制文件(图片,音频,-视频)
  • read()可以接受一个size作为参数来传递,默认值为-1会读取所有。该参数是用来读取指定指定字符的数量。如果size大于剩下的的字符数量,则一次性读取剩下的内容
  • readline()方法读取一行,读取完默认换行。
  • readlines()一行一行的全部读取到一个列表中返回。

文件的写

  • 文件默认以读打开,操作写时要用w表示写打开,如果文件不存在则创建,存在则覆盖,且只能传递字符串。当输出a.write(写入a文件的内容)会输出写入a文件内容的长度
  • 如果要追加则用a来调用,格式如下
    open(file_name,‘a’,encoding=‘utf-8’)其中’a’表示打开的方法。

二进制文件的操作

在原有操作的方式上加个b比如‘rb’,读取时通常一次读取1024*100也就是100kb,一次读取过多容易出问题。
下面展示一个二进制文件读取的程序:

file_name = r'C:\Users\19214\Desktop\Kalimba.mp3'#从指定位置读取文件
    # b 二进制文件
    # rb读取 wb 写入
with open(file_name,'rb') as file_obj:
    # print(file_obj.read(100))
    # 定义一个新的文件
    new_name = 'abc.mp3'
    with open(r'C:\Users\19214\Desktop'+r'\abc.mp3', 'wb') as new_obj:
    # with open(new_name,'wb') as new_obj:
        # 定义读取的大小,不能把读取大小定义的太大
        chunk = 1024 * 100
        while True:
            content = file_obj.read(chunk)
            if not content:
                break
            new_obj.write(content)

你可能感兴趣的:(文件)