python从入门到放弃4__文件的读取和写入

文件

在工作的使用工程中,可能会使用到不同的文件类型如:png,txt等。因为计算机本身存储内容的形式是翻译为0和1,但是因为文件类型和编码格式的不同使用的编码语言也不同。所以在程序中调用文件的时候需要注意对应的编码格式,一般为UTF-8。

文件使用三步走:打开——使用(读/写)——关闭

f = open("/Users/xxx/Downloads/test","w")  #打开文件
f.write("你好啊啊啊啊") #写入内容
f.close() #关闭文件

(在写入和读取的时候会占用文件,记得写完要释放文件的占用)

文件打开

可以使用open函数来打开文件

文件对象 = open(文件名,模式,解码格式)

文件对象:因为python是面向对象编程,这里文件可以默认写f

文件名:只写文件名默认和代码文件同一层级,如果不是同一层级需要写文件地址。

        p.s. MAC的文件地址:点击文件-右键显示简介-在"位置"上右键拷贝文件路径

模式:文件的使用模式:只读、写入和追加模式,对应缩写:r,w,a。

        写入为清空后覆盖,追加则是在原有内容后面进行写入。如果文件不存在,则创建新文件。

f = open("/Users/xxx/Downloads/test","r",encoding="UTF-8")

下面是打开函数对应的全部位置及对应内容:

file_object = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

  • buffering:(看完文件写入再来看这里)设置缓冲策略。默认值为`-1`,表示使用系统默认的缓冲策略。如果设置为`0`,表示不缓冲;如果设置为`1`,表示行缓冲(只用于文本模式);如果设置为一个大于`1`的整数,表示使用指定大小的缓冲区。个人理解这里就是避免频繁的内存所以可以选择是每次都写入,还是攒一起写入,大概根据需求选择就好了。
  • errors: 如何处理编码和解码错误。常见的值包括`'strict'`, 'ignore''replace'等。
  • newline:控制换行符的行为。可能的值有`None`, '''\n''\r', 和`'\r\n'`。通常用于跨平台处理文件的换行符。
  • closefd:如果打开的是一个文件而不是文件描述符,这个参数应当为`True`(默认值),否则为`False`。
  • opener:自定义开启文件的函数或打开文件描述符的函数。

文件读取

文件读取有三种方式,对应不同的使用姿势。

  • f.read(字节数):读取对应的字节数,括号里的字节数不写默认读全部。
  • f.readlines():一次性读取所有行,并保存为列表。
  • f.readline:一次性读取一行。

读取模式有一个弊端是,在read状态会记住读取的顺序,下次在已读取后面接着读取。

content = f.read()

文件写入

f.write(""):将内容暂存写入。

f.flush():内容刷新,将内容实际写入到文件中,会占用内容进行读写操作。

因为将文件进行写入是会消耗内存的,在降低消耗的基础上,可以选择write完一部分后,在进行flush,避免频繁写入浪费内存。另外再python中,调用close内置flush一下,所以可以使用习惯灵活运用。

p.s.如果要用写入模式,打开文件时的模式记得要写对啊!

文件关闭

f.close()

如果你怕忘了,在Python中,with语句可以自动管理文件的打开和关闭。使用with open结构处理文件,并且能够自动关闭文件。

def process_file(filename, mode):
    with open(filename, mode) as file:
        # 在这里处理文件,比如读取或写入内容
        content = file.read()
        # 处理完毕后文件会自动关闭
    return content

  • 29
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值