Python文件读写详解(非常详细)

在Python中,文件的读写操作是常见的编程任务之一。本文将详细介绍如何使用Python进行文件的读取和写入操作,包括打开文件、读取文件内容、写入文件内容等基本操作。

目录

1. 打开文件

2. 读取文件内容

2.1 读取整个文件

2.2 逐行读取

2.3 读取所有行

3. 写入文件内容

3.1 写入单行

3.2 写入多行

4. 文件迭代器

5. 上下文管理器(Context Manager)

6. 异常处理

7. 关闭文件

8. 二进制文件操作

9. 文件定位

10. 总结


1. 打开文件

在Python中,使用open()函数来打开文件。open()函数接受两个参数,第一个是文件名,第二个是打开文件的模式。常见的模式有:

  • 'r': 只读模式,用于读取文件内容。
  • 'w': 写入模式,用于写入文件内容。如果文件不存在,会创建一个新文件;如果文件已存在,会清空文件内容。
  • 'a': 追加模式,用于在文件末尾添加内容。如果文件不存在,会创建一个新文件。
  • 'b': 二进制模式,用于处理二进制文件,如图片、视频等。
# 以只读模式打开文件
file = open('example.txt', 'r') 
# 以写入模式打开文件(如果文件不存在则创建) 
file = open('example.txt', 'w') 
# 以追加模式打开文件(如果文件不存在则创建) 
file = open('example.txt', 'a') 
# 以二进制模式打开文件 
file = open('example.jpg', 'rb')

2. 读取文件内容

一旦文件被打开,我们就可以使用不同的方法来读取文件的内容。

2.1 读取整个文件

使用read()方法可以读取整个文件的内容。

with open('example.txt', 'r') as file: 
    content = file.read() 
    print(content)
2.2 逐行读取

使用readline()方法可以逐行读取文件的内容。

with open('example.txt', 'r') as file: 
    line = file.readline() 
    while line: 
        print(line) 
        line = file.readline()
2.3 读取所有行

使用readlines()方法可以将文件的所有行读取到一个列表中。

with open('example.txt', 'r') as file: 
    lines = file.readlines() 
    for line in lines: 
        print(line)

3. 写入文件内容

使用打开文件时的不同模式,可以实现写入文件的不同方式。

3.1 写入单行

使用write()方法可以向文件中写入指定内容。

with open('example.txt', 'w') as file: 
    file.write('Hello, World!\n')
3.2 写入多行

使用writelines()方法可以将多行内容写入文件。

lines = ['Line 1\n', 'Line 2\n', 'Line 3\n'] 
with open('example.txt', 'w') as file: 
    file.writelines(lines)

4. 文件迭代器

文件对象是可迭代的,因此我们可以使用for循环逐行读取文件内容。

with open('example.txt', 'r') as file: 
    for line in file: 
        print(line)

5. 上下文管理器(Context Manager)

使用with语句打开文件,可以确保在文件使用完毕后自动关闭文件,避免资源泄漏。

with open('example.txt', 'r') as file: 
    content = file.read() 
    print(content) # 文件自动关闭

6. 异常处理

在文件读写过程中,可能会出现异常,例如文件不存在或权限错误。因此,在操作文件时,最好使用异常处理来增强程序的健壮性。

try: 
    with open('example.txt', 'r') as file: 
        content = file.read() 
        print(content) 
except FileNotFoundError: 
    print('文件不存在!') 
except PermissionError: 
    print('无权限访问文件!') 
except Exception as e: 
    print(f'发生未知错误:{e}')

7. 关闭文件

虽然使用with语句可以确保文件被正确关闭,但在某些情况下,可能需要手动关闭文件。

file = open('example.txt', 'r') 
content = file.read() 
print(content) 
file.close() # 手动关闭文件

8. 二进制文件操作

在处理二进制文件时,打开文件时需要指定'b'模式。

with open('example.jpg', 'rb') as file: 
    data = file.read() # 对二进制数据进行操作

9. 文件定位

在文件读写中,有时候需要移动文件指针的位置,可以使用seek()方法。

with open('example.txt', 'r') as file: 
    content = file.read(10) # 读取前10个字符 
    print(content) 
    file.seek(0) # 移动文件指针到文件开头 
    content = file.read(5) # 再次读取前5个字符 
    print(content)

10. 总结

文件读写是编程中常见的操作之一,Python提供了简单而强大的工具来处理文件。通过了解文件的打开、读取、写入等基本操作,以及一些常见的技巧和最佳实践,你可以更加灵活地应对各种文件操作需求。使用上下文管理器和异常处理,可以使代码更加健壮,防止因文件操作引起的问题。在实际应用中,根据具体需求选择适当的方法和模式,可以更好地完成文件处理任务。

Python的pandas包提供了方便的函数来读写数据。通过pandas,你可以读取不同类型的文件,并返回一个DataFrame对象,这是pandas的核心数据结构,可以方便地对数据进行分析和处理。你可以使用pandas的read_csv函数来读取CSV文件,read_excel函数来读取Excel文件。同时,pandas也支持将数据保存为CSV、Excel等多种格式。对于保存数据,pandas可以自动推断压缩类型,你可以使用to_csv函数将DataFrame对象保存为CSV文件,也可以使用to_excel函数将DataFrame对象保存为Excel文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python中pandas读写数据详解](https://blog.csdn.net/winnerxrj/article/details/130136187)[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: 50%"] - *2* *3* [在Python中使用pandas进行文件读取和写入方法详解](https://blog.csdn.net/m0_59485658/article/details/123818977)[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: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值