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内所填参数:

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

"""

# 读写基本方式:

# 以默认的方式进行读取

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

file_obj2 = open("python2.txt", "wb")
bytes_data2 = file_obj2.write(bytes_data)
file_obj2.close()
# #  用with的方法以二进制的方式去写,并创建一个新的文件python3.txt
with open("python.txt", "rb") as file_obj3:
    bytes_data3 = file_obj3.read()

with open("python3.txt", "wb") as file_obj4:
    bytes_data4 = file_obj4.write(bytes_data3)

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

file_obj3 = open("python.txt", "w")
try:
    bytes_data3 = file_obj3.write("hello word")
    # str_data3 = file_obj3.read()
except Exception:
    pass
finally:
    file_obj3.close()
# 复制smk.png图片
file2_obj = open("smk.png", "rb")
bytes2_obj = file2_obj.read()
file2_obj.close()

file3_obj = open("smk2.png", "wb")
bytes3_obj = file3_obj.write(bytes2_obj)
file3_obj.close()
# 用with的方式复制smk.png文件为smk3.png
with open("smk.png", "rb") as file2_obj:
    bytes_data = file2_obj.read()


with open("smk3.png", "wb") as file3_obj:
    print(file3_obj.write(bytes_data))

 读和写详解:

read   读取

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

readline 读取一行

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

readlines()   读取多行

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

write

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

writelines

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

file_obj.close()
print(str_data)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱玩网络的小石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值