当前位置:   article > 正文

python中文件读写_python 文件读取方法

python 文件读取方法

目录

读写文件:

传参:

mode内所填参数:

# 读写基本方式:

# 不管如何都要关闭文件,解决方法

 读和写详解:

read   读取

readline 读取一行

readlines()   读取多行

write

writelines


读写文件:

读写文件:read write
打开文件的方式(俩种) :以读的方式打来,以写的方式打开
读和写的时候(俩种):以二进制和文本的格式来读和写
注意:无论如何处理都要关闭文件

传参:

传参:

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
默认以文本的方式读取 
# known special case of open   开放的已知特殊情况
     file 代表一个文件(一个代表文件以及文件路径的字符串)
     mode 最重要的参数
     buffering 缓冲   缓冲区
     encoding 编码
     errors 错误  
     newline 换行   
     closefd 关闭
  

mode内所填参数:

  1. """
  2. 'r' open for reading (default)
  3. 打开读取(默认)
  4. 'w' open for writing, truncating the file first
  5. 打开进行写入,先截断文件(原文件内容会被删除,然后在加入新的内容)
  6. 'x' create a new file and open it for writing
  7. 创建一个新文件,打开它进行写入
  8. 'a' open for writing, appending to the end of the file if it exists
  9. 打开进行写入,如果文件存在,则附加到文件的末尾
  10. 'b' binary mode 二进制模式
  11. 't' text mode (default) 文本模式(默认)
  12. '+' open a disk file for updating (reading and writing)
  13. 打开要更新的磁盘文件(读和写)
  14. 'U' universal newline mode (deprecated)
  15. 通用换行模式(已不推荐)
  16. """

# 读写基本方式:

# 以默认的方式进行读取

  1. file_obj = open("python.txt",encoding="utf-8")
  2. str_data = file_obj.read()
  3. file_obj.close()
  4. print(str_data)
# 以with的方式进行读取, with 这种方式不用关闭,默认就是直接关闭的
  1. with open("python2.txt", encoding='utf-8') as file_obj:
  2. print(file_obj.read())
# 以二进制的方式进行读取
  1. file_obj = open("python.txt", "rb")
  2. bytes_data = file_obj.read()
  3. file_obj.close()
  4. print(bytes_data)
# 以二进制的方式去写,并创建一个新的文件python2.txt
  1. file_obj2 = open("python2.txt", "xb")
  2. bytes_data2 = file_obj2.write(bytes_data)
  3. file_obj2.close()
  4. print(bytes_data2)
# 方法二
  1. file_obj2 = open("python2.txt", "wb")
  2. bytes_data2 = file_obj2.write(bytes_data)
  3. file_obj2.close()
# #  用with的方法以二进制的方式去写,并创建一个新的文件python3.txt
  1. with open("python.txt", "rb") as file_obj3:
  2. bytes_data3 = file_obj3.read()
  3. with open("python3.txt", "wb") as file_obj4:
  4. bytes_data4 = file_obj4.write(bytes_data3)

# 不管如何都要关闭文件,解决方法

  1. file_obj3 = open("python.txt", "w")
  2. try:
  3. bytes_data3 = file_obj3.write("hello word")
  4. # str_data3 = file_obj3.read()
  5. except Exception:
  6. pass
  7. finally:
  8. file_obj3.close()
# 复制smk.png图片
  1. file2_obj = open("smk.png", "rb")
  2. bytes2_obj = file2_obj.read()
  3. file2_obj.close()
  4. file3_obj = open("smk2.png", "wb")
  5. bytes3_obj = file3_obj.write(bytes2_obj)
  6. file3_obj.close()
# 用with的方式复制smk.png文件为smk3.png
  1. with open("smk.png", "rb") as file2_obj:
  2. bytes_data = file2_obj.read()
  3. with open("smk3.png", "wb") as file3_obj:
  4. print(file3_obj.write(bytes_data))

 读和写详解:

read   读取

read   读取
# 注:read(所要读取的字符个数)   换行算一个字符
    当()内不填参数时,默认为全部读取
    若你在没有关闭文件前再次进行读取,那么将会在之前读取停止的位置开始读取,以此类推直到文件末尾
  1. file_obj = open("python.txt", "r", encoding="utf-8")
  2. str_data = file_obj.read() # read(self, n: int = -1) -> AnyStr
  3. file_obj.close()
  4. print(str_data)

readline 读取一行

readline 读取一行
注:readline(a)  读取一行, 这一行的前a个字符,不填参数时,默认为读取第一行
  1. file_obj = open("python.txt", "r", encoding="utf-8")
  2. str_data = file_obj.readline() # readline(self, limit: int = -1) -> AnyStr:
  3. file_obj.close()
  4. print(str_data)

readlines()   读取多行

readlines(a) 读取多行
            默认会读取全部内容,并且会以一行(包括该行换行符在内)为一个元素,合成一个列表list_data。
注:    当a小于第一行所含字符数时,readlines会返回第一行所有字符(包括该行换行符在内),
     也就是列表list_data的第一个元素
       当a正好等于第一行所含字符数,并且恰好读取到换行符时,readlines会读取第一行包括换行符所连接的下一行,
     也就是列表list_data的第一第二个元素
       当a小于第二行所含字符数,readlines会返回前俩行所有字符(包括该行换行符在内),也就是列表list_data
     的前俩个个元素以此类推
       '\n'('换行符')代表一个字符,当读取的内容在不同行时,其中会有换行符。
  1. file_obj = open("python.txt", "r", encoding="utf-8")
  2. # str_data = file_obj.readlines() # readlines(self, hint: int = -1) -> List[AnyStr]:
  3. file_obj.close()
  4. print(str_data)

write

  1. file_obj = open("python.txt", "a", encoding="utf-8")
  2. list_data = ['1', '22', '333', '4444', '55555']
  3. str_data = file_obj.write('\n' + "\n".join(list_data))
  4. file_obj.close()
  5. print(str_data)

writelines

  1. file_obj = open("python.txt", "a", encoding="utf-8")
  2. list_data = ['\n1\n', '22\n', '333\n', '4444\n', '55555\n']
  3. str_data = file_obj.writelines(list_data)
  4. # writelines(self, lines: List[AnyStr](字符串列表)) -> None:
  5. file_obj.close()
  6. print(str_data)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/820452
推荐阅读
相关标签
  

闽ICP备14008679号