Python(读写文件)

目录

一、创建文件

二、打开文件

read

 readlines

readline 

readale 

write 

writable

 writelines

a 追加

+  以读或写打开一个磁盘文件

b二进制方式

三、关闭文件

手动关闭

with关闭


一、创建文件

  • 右键打开菜单

  •  点击New,创建File

二、打开文件

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

  • open:打开,以读read或写write的方式打开,

                  读的方式:文本的方式,二进制的方式。
                  写的方式:文本的方式,二进制的方式。
        写文件的时候有覆盖和追加。

        以文本写的时候是字符串,以二进制写的时候是字节。 

  • file:文件;形式是——>路径 + 文件。
  • mode:模式。
  • buffering:缓存。
  • encoding:编码。
  • errors:错误处理方式。
  • newline:新行。
  • closefd:关闭文件描述符。

  1. ‘r’:以读的方式打开文件(默认)。
  2. ‘w’:以写的方式打开文件,先清空再写——>覆盖。
  3. ‘x’:创建一个新文件,并以写的方式打开。
  4. ‘a’:以追加的方式去写。
  5. ‘b’:二进制方式。
  6. ‘t’:文本方式(默认)。
  7. ‘+’:以读或写打开一个磁盘文件。

read

  • file_obj = open("file_text1")
    data = file_obj.read()
    print(data)
    file_obj.close()

        

 上面这种写出来是乱码,要添加编码方式(文件的编码方式可以在Python编译器的右下角查看)

file_obj = open("file_text1", encoding="UTF-8")
data = file_obj.read()
print(data)
file_obj.close()

 

  • file_obj = open("file_text1", encoding="UTF-8")
    data = file_obj.read()
    print(data)
    file_obj.close()
    
    file_obj = open("file_text1", "rt", encoding="UTF-8")
    data = file_obj.read()
    print(data)
    file_obj.close()

     r和t都是默认方式

  • 注意:如果是文本方式r可以省略,如果是二进制方式r不能省略。

 readlines

  • 按数量去读取,但是返回的是一个列表,且返回的是你读取的字符所在行的整行内容。
file_obj = open("file_text3", "rt", encoding="utf-8")
data1 = file_obj.readlines(12)
print(data1)
file_obj.close()

 

 

  •  但当变换readlines里面的数字时

readline 

  • 读取单行
    file_obj = open("file_text3", "rt", encoding="utf-8")
    data1 = file_obj.readline(9)
    print(data1)
    file_obj.close()

     

    readale 

  • 判断可读还是不可读,返回的是true/false。

 

write 

  • file_obj = open("file_text1", "w", encoding="UTF-8")
    data = file_obj.write("1234556789")
    print(data)
    file_obj.close()

     会覆盖原来文件里的内容,输出的是你写入字符的个数。如果你打开的文件不存在,他会自己创建一个文件,并写入你输入的内容。 

writable

  • 判断是否有写的能力,返回的是true/false。

 writelines

  • 写多行内容
    file_obj = open("file_text1", "w", encoding="utf-8")
    data = file_obj.writelines("\n".join(["hello", "world", "china"]))
    file_obj.close()

      

a 追加

  • file_obj = open("file_text1", "a", encoding="UTF-8")
    data = file_obj.write("1234556789")
    print(data)
    file_obj.close()

     

+  以读或写打开一个磁盘文件

  • file_obj = open("file_text1", "a+", encoding="UTF-8")
    data = file_obj.write("1234556789")
    print(data)
    file_obj.close()

     注意:'+'不能单独出现。 

b二进制方式

  • 二进制的方法:图片,音频,视频,或其他非文本的文件。
  • 二进制读取出来的类型是字节,所以二进制去写时用的也是字节。
  • 复制图片
    file_obj = open("picture_copy.jpg", "wb")
    data = file_obj.write(data)
    file_obj.close()

在你的文件夹查看图片

文件大小是一样的  

  • read读取字节(括号里输几,就读取几个字节)
    file_obj = open("picture.jpg", "rb")
    data = file_obj.read(3)
    print(data)

  • 注意:二进制不需要加编码方式;

                  如果不把图片放进你的Python目录里,就要在编码时写路径。

三、关闭文件

  • 手动关闭

    file_obj.close()

  • with关闭

    with open("file_text2", "w", encoding="utf-8") as file_obj:
        file_obj.write("123")
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值