Pyhton 文件读写总结

一、读文件

1.  Python内置函数

f=open('/Users/laplas/data.txt','r')	 'r'表示读文件
f.read()				 一次读取文件的全部内容
f.close()				 关闭文件
f.read(size)				 最多读取size个字节内容
f.readline()				 逐行读取
f.readlines()				 一次读取所有内容并按行返回list


前面讲的默认都是读取文本文件,并且是 UTF-8 编码的文本文件,若要读取二进制文件,比如图片、视频等,用‘rb’模式打开文件即可:

f=open('/Users/laplas/test.jpg','rb')
f.read()

要读取非 UTF-8 编码的文本文件,需要给open()函数传入 encoding参数,例如,读取GBK 编码的文件:

f = open('/Users/laplas/gbk.txt', 'r', encoding='gbk')

遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,

open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略: 

f = open('/Users/laplas/gbk.txt', 'r', encoding='gbk',errors='ignore')

由于文件读写时都有可能产生 IOError,一旦出错,后面的 f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,

我们可以使用 try ... finally 来实现:

try:
    f = open('/path/to/file', 'r')
    f.read()
finally:
    if f:
    f.close()

但是每次都这么写实在太繁琐,所以, Python 引入了 with 语句来自动帮我们调用 close()方法:

with open('/path/to/file', 'r') as f:
    f.read()

这和前面的 try ... finally 是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

for line in f.readlines():
    line.strip()# 删掉空格,换行,制表符等

例,data.txt的内容如下:

编号密度含糖率好瓜
10.6970.461
20.7740.3761
30.6340.2641
40.6080.3181
50.5560.2151
60.4030.2371
70.4810.1491
80.4370.2111
90.6660.0910
100.2430.02670
110.2450.0570
120.3430.0990
130.6390.1610
140.6570.1980
150.360.370
160.5930.0420
170.7190.1030

data.txt中读取数据

data=[]
with open('data.txt','r') as f:
    f.readline()
    while True:
        line=f.readline()
        if not line:
            break
        temp=line.split()
        data.append(temp)

二、写文件

1. Python内置函数

f=open('/Users/laplas/data.txt','w')     'w'表示写文本文件,'wb'表示写二进制文件
f.write('Hello,world!')			 写文件 
f.close()     				 关闭文件

只有调用 close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到

磁盘,剩下的丢失了。所以,还是用with语句来得保险:

with open('/Users/michael/test.txt', 'w') as f:
    f.write('Hello, world!')

要写入特定编码的文本文件,请给 open()函数传入 encoding 参数,将字符串自动转换成指定编码。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 3.11,可以使用以下代码来读写文件: 读取文件: ```python # 以读模式打开文件 f = open('readme.txt', 'r', encoding='utf8') # 读取文件内容 con = f.read() # 关闭文件 f.close() # 显示内容 print(con) ``` 这段代码首先使用`open`函数以读模式打开文件,然后使用`read`方法读取文件内容,最后使用`close`方法关闭文件。读取的内容可以通过`print`语句显示出来。请注意,读模式和写模式不能混用,否则会导致错误。 写入文件: ```python # 以写模式打开文件 f = open('output.txt', 'w', encoding='utf8') # 写入内容 content = "Hello, World!" f.write(content) # 关闭文件 f.close() ``` 这段代码首先使用`open`函数以写模式打开文件,然后使用`write`方法写入内容。写入的内容可以是字符串或其他可写入的对象。最后使用`close`方法关闭文件。请注意,写模式会清空原有文件内容并且覆盖写入新的内容。 总结: 在Python 3.11,可以使用`open`函数以指定的模式打开文件,并使用`read`和`write`方法读取和写入文件内容。读模式用于读取文件内容,写模式用于写入文件内容。根据需要选择适当的模式来读写文件即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python笔记.docx](https://download.csdn.net/download/bxy0806/88235414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [python 文件的读写操作 200311](https://blog.csdn.net/whalecode/article/details/104792989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [2022-10-24将要发布的python3.11比3.10快10%到60%](https://blog.csdn.net/zhaiminlove/article/details/126966986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值