首页 > 其他分享 >文件读写

文件读写

时间:2023-01-14 23:56:58浏览次数:34  
标签:文件 读写 fuck gittrash txt open bug

文件读写

1. 读文件

以读文件的模式,打开一个文件对象,使用open()函数

    f = open('D:\\gittrash\\bug.txt','r')
    以只读模式,读取该路径的文件,若文件不存在会报错ValueError

    f.read() 
    print(f.read()) 
    '''
    fuck wt!
    fuck you !

    fuck easy
    '''
    将文件内容一次性全部读出,以str 返回

    f.readline() 一行行地读
    print(f.readline())
    #fuck wt!

    f.readlines()   每一行读取,并每行作为一个元素,返回一个列表
    print(f.readlines()) 
    #['fuck wt!\n', 'fuck you !\n', '\n', 'fuck easy']


    f.close()
    文件对象使用完,必须关闭,不然会持续占用资源,操作系统能同时打开的文件对象是有限的

不可否认,文件操作很容易报出各种各样的错误,导致后面的代码无法运行,文件对象也无法关闭,这就需要用到异常处理

    try :
        f = open('D:\\gittrash\\bug.txt','r')
        f.read()
    finally:
        if f:
            f.close()
    finally的语句无论如何都会运行

try ...finally语句有些繁琐,可以简化成:

    with open('D:\\gittrash\\bug.txt','r') as f:
        print(f.read())

这样写不用关闭对象,with会自动处理,原因不晓得

读取时还有一个编码问题

有的文件时文本,有的是二进制,有的还有非法编码,open()函数需要设置相应的参数

    f = open('D:\\gittrash\\bug.txt','rb')
    print(f.read())
    #b'fuck wt!\r\nfuck you !\r\n\r\nfuck easy'
    这是以二进制格式读取,得到 b'...' 的数据

    f = open('D:\\gittrash\\bug.txt','r',encoding='gbk')
    这是要读取一个以gbk编码的文件,需要设置 encoding 参数

    甚至有些文件夹杂了非法编码的字符,我们需要特别处理
    f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
    设置errors,直接忽略

2.写文件

和读文件基本一样,改一下参数即可

f1 = open('D:\\gittrash\\bug.txt','w') 以文本形式写入
f2 = open('D:\\gittrash\\bug.txt','wr') 以二进制格式写入

你可以反复写入,但系统不会立马执行,而是放在缓冲区,直到文件对象关闭,才将所有内容写入磁盘,因此又得异常处理

with open('D:\\gittrash\\bug.txt','w') as f:
    f.write("123")

其次需要注意,'w'写入模式,会将原来的文件覆盖,如果不想覆盖原来文件,添加参数a,将在最后一行继续写入
f1 = open('D:\\gittrash\\bug.txt','a')

标签:文件,读写,fuck,gittrash,txt,open,bug
From: https://www.cnblogs.com/HugoWang010220/p/17052844.html

相关文章

  • 文件操作补充
    缓存IO前面讲了文件的读写操作,但有时候并不是直接读写文件到文件对象,可以通过一个缓存StringIO,在内存中读写strfromioimportStringIOf=StringIO()......
  • Net 6 控制台配置文件读取
    原文网址:https://blog.csdn.net/shuikanshui/article/details/122809945一、使用App.Config作为配置文件1、项目增加应用程序配置文件App.config2、文件设置为“如果较......
  • Mybatis (三) Mybatis映射文件
    Mybatis映射文件☞博客导航,带你有序的阅读和学习!文章目录​​Mybatis映射文件​​​​基本CRUD​​​​增加​​​​增加并返回ID​​​​删除​​​​更新​​​​查询​......
  • Pikachu-文件上传漏洞通关详解
    Pikachu-文件上传漏洞通关详解一、clientcheck方法:禁用JS先进行功能测试,分别上传jpg和php文件jpg文件上传成功并通过burp抓到数据包php文件上传失败且burp没有抓......
  • PHP实现动态修改.env文件配置(适用于任何框架)
    /***@function动态的设置env文件中某项配置值*@param$env_pathstringenv文件路径*@param$keystring配置项*@param$valst......
  • (13)SpringBoot使用poi上传excel文件
      摘要:本文主要讲解,在SpringBoot项目中如何使用poi上传excel文件。SpringBoot整合poi和springmvc整合poi差别不大,springmvc整合poi也可以借鉴此文;由于后面打算写spring......
  • python模块之beautifulsoup —— html文件解析以及提取
    python模块之beautifulsoup——html文件解析以及提取beautifulsoup简称bs4,能够帮助我们处理html等超标记文本的标签,提取其中的文字,常用于爬虫领域等。bs4及相关模块......
  • Apache Arrow User Guide——使用Apache Arrow读写HDFS中的parquet文件
    安装一下HADOOP并配置一下LD_LIBRARY_PATHexportHADOOP_VERSION=2.10.1exportHADOOP_HOME=/opt/hadoop-$HADOOP_VERSION#AddHadoopJavalibrariestoyourCLASSPATH,......
  • Navicat 导入和导出 sql文件
    一:Navicat导入MySQL的.sql文件。打开连接connection,选择你要导入的数据库,双击打开(或者新建一个),然后右键该数据库,选“运行文件(executesqlfile)”,然后选择文件。或者新建一......
  • web项目下载文件,别在本地生成临时文件了,在此验证其效率,竟差30%的效率
    目录​​写在前面​​​​公共文件下载方法​​​​生成临时文件方式下载​​​​ 测试​​​​ 直接输出流转输入流的方式下载​​​​测试​​​​总结​​写在前面有很......