PYTHON基础技能 – Python高手不可不知的12个文件处理窍门

释放双眼,带上耳机,听听看~!

引言

在 Python 中,文件操作是一项基本技能,无论是简单的文本文件还是复杂的 CSV 数据文件,都需要掌握正确的打开、读取、写入以及关闭文件的方法。本文将详细介绍如何使用 Python 进行各种文件操作,并提供一些实用的技巧。

1. 打开文件的基础方法

在 Python 中,打开文件最基础的方法是使用

1
open()

函数。这个函数可以让你读取或写入文件。


1
<em>#&nbsp;打开一个文件用于读取</em><br>file&nbsp;=&nbsp;open('example.txt',&nbsp;'r')<br><br><em>#&nbsp;读取文件全部内容</em><br>content&nbsp;=&nbsp;file.read()<br><br><em>#&nbsp;关闭文件</em><br>file.close()<br>print(content)

注意:每次操作完文件后记得关闭它。如果忘记关闭,可能会导致数据丢失或其他问题。

2. 使用
1
with

语句自动管理文件

使用

1
with

语句可以避免忘记关闭文件的问题。它会在代码块执行完毕后自动关闭文件。


1
<em>#&nbsp;使用&nbsp;with&nbsp;语句打开文件</em><br>with&nbsp;open('example.txt',&nbsp;'r')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;content&nbsp;=&nbsp;file.read()<br>print(content)

好处:代码更简洁,不需要手动关闭文件。

3. 逐行读取文件

如果你处理的是大文件,一次性读取所有内容可能会消耗大量内存。这时可以选择逐行读取文件。


1
with&nbsp;open('large_file.txt',&nbsp;'r')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;line&nbsp;in&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>#&nbsp;每次只处理一行</em><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(line.strip())

小贴士:使用

1
strip()

方法去除行末的换行符。

4. 写入文件

向文件中写入内容也很简单。只需要将模式参数设置为

1
'w'

即可。


1
with&nbsp;open('output.txt',&nbsp;'w')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;file.write('Hello,&nbsp;world!\n')<br>&nbsp;&nbsp;&nbsp;&nbsp;file.write('This&nbsp;is&nbsp;a&nbsp;test.\n')

注意:使用

1
'w'

模式会覆盖已存在的文件。

5. 追加内容到文件

如果想在现有文件末尾添加内容,可以使用

1
'a'

模式。


1
with&nbsp;open('output.txt',&nbsp;'a')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;file.write('New&nbsp;line&nbsp;added.\n')

好处:不会覆盖原有内容。

6. 读取二进制文件

对于图片、音频等非文本文件,需要以二进制模式打开。


1
<em>#&nbsp;读取图片文件</em><br>with&nbsp;open('image.jpg',&nbsp;'rb')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;image_data&nbsp;=&nbsp;file.read()<br><br><em>#&nbsp;将图片数据写入新文件</em><br>with&nbsp;open('new_image.jpg',&nbsp;'wb')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;file.write(image_data)

小技巧

1
'rb'

1
'wb'

分别表示读取和写入二进制文件。

7. 使用
1
os

模块检查文件是否存在

在处理文件前,最好先检查一下文件是否存在。


1
import&nbsp;os<br><br>if&nbsp;os.path.exists('example.txt'):<br>&nbsp;&nbsp;&nbsp;&nbsp;print("文件存在")<br>else:<br>&nbsp;&nbsp;&nbsp;&nbsp;print("文件不存在")

提示:这样可以避免因为找不到文件而抛出异常。

8. 重命名文件

有时候需要给文件换个名字,这可以通过

1
os.rename()

实现。


1
import&nbsp;os<br><br>os.rename('old_name.txt',&nbsp;'new_name.txt')

注意:如果目标文件名已经存在,会被覆盖。

9. 删除文件

不再需要某个文件时,可以使用

1
os.remove()

删除它。


1
import&nbsp;os<br><br>os.remove('unwanted_file.txt')

警告:删除操作不可逆,请谨慎使用!

10. 列出目录下的所有文件

经常需要查看某个目录下有哪些文件,可以用

1
os.listdir()

来实现。


1
import&nbsp;os<br><br>files&nbsp;=&nbsp;os.listdir('.')<br>for&nbsp;file&nbsp;in&nbsp;files:<br>&nbsp;&nbsp;&nbsp;&nbsp;print(file)

11. 处理 CSV 文件

CSV(逗号分隔值)文件是一种常见的数据存储格式。Python 提供了内置的

1
csv

模块来处理这些文件。

读取 CSV 文件


1
import&nbsp;csv<br><br><em>#&nbsp;打开&nbsp;CSV&nbsp;文件</em><br>with&nbsp;open('data.csv',&nbsp;'r')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;reader&nbsp;=&nbsp;csv.reader(file)<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;row&nbsp;in&nbsp;reader:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(row)

解释

  • 1
    csv.reader(file)

    创建一个 CSV 读取器对象。

  • 每行数据作为一个列表返回。

写入 CSV 文件


1
import&nbsp;csv<br><br><em>#&nbsp;打开&nbsp;CSV&nbsp;文件并写入数据</em><br>with&nbsp;open('output.csv',&nbsp;'w',&nbsp;newline='')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;writer&nbsp;=&nbsp;csv.writer(file)<br>&nbsp;&nbsp;&nbsp;&nbsp;writer.writerow(&#091;'Name',&nbsp;'Age',&nbsp;'City'])<br>&nbsp;&nbsp;&nbsp;&nbsp;writer.writerow(&#091;'Alice',&nbsp;'25',&nbsp;'New&nbsp;York'])<br>&nbsp;&nbsp;&nbsp;&nbsp;writer.writerow(&#091;'Bob',&nbsp;'30',&nbsp;'Los&nbsp;Angeles'])

解释

  • 1
    csv.writer(file)

    创建一个 CSV 写入器对象。

  • 1
    writerow()

    方法用于写入单行数据。

12. 使用
1
pandas

处理 CSV 文件

1
pandas

是一个强大的数据分析库,非常适合处理大型 CSV 文件。

读取 CSV 文件


1
import&nbsp;pandas&nbsp;as&nbsp;pd<br><br><em>#&nbsp;读取&nbsp;CSV&nbsp;文件</em><br>df&nbsp;=&nbsp;pd.read_csv('data.csv')<br>print(df.head())&nbsp;&nbsp;<em>#&nbsp;显示前几行数据</em>

解释

  • 1
    pd.read_csv()

    用于读取 CSV 文件并转换成 DataFrame 对象。

  • 1
    head()

    方法显示 DataFrame 的前几行。

写入 CSV 文件


1
import&nbsp;pandas&nbsp;as&nbsp;pd<br><br><em>#&nbsp;创建&nbsp;DataFrame</em><br>data&nbsp;=&nbsp;{'Name':&nbsp;&#091;'Alice',&nbsp;'Bob'],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Age':&nbsp;&#091;25,&nbsp;30],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'City':&nbsp;&#091;'New&nbsp;York',&nbsp;'Los&nbsp;Angeles']}<br>df&nbsp;=&nbsp;pd.DataFrame(data)<br><br><em>#&nbsp;写入&nbsp;CSV&nbsp;文件</em><br>df.to_csv('output.csv',&nbsp;index=False)

解释

  • 1
    pd.DataFrame(data)

    创建一个 DataFrame 对象。

  • 1
    to_csv()

    方法将 DataFrame 写入 CSV 文件。

  • 1
    index=False

    参数表示不写入索引列。

实战案例:分析销售数据

假设你有一个名为

1
sales_data.csv

的文件,其中包含公司的销售记录。我们将使用 Python 来分析这些数据。

数据结构


1
2
3
4
5
OrderID,Product,Quantity,Price
1001,Apple,10,2.50
1002,Banana,5,1.00
1003,Orange,7,1.50
...

读取并分析数据


1
import&nbsp;pandas&nbsp;as&nbsp;pd<br><br><em>#&nbsp;读取&nbsp;CSV&nbsp;文件</em><br>df&nbsp;=&nbsp;pd.read_csv('sales_data.csv')<br><br><em>#&nbsp;计算总销售额</em><br>total_sales&nbsp;=&nbsp;(df&#091;'Quantity']&nbsp;*&nbsp;df&#091;'Price']).sum()<br>print(f"Total&nbsp;Sales:&nbsp;${total_sales:.2f}")<br><br><em>#&nbsp;查找销售量最高的产品</em><br>top_product&nbsp;=&nbsp;df.groupby('Product')&#091;'Quantity'].sum().idxmax()<br>print(f"Top&nbsp;Product:&nbsp;{top_product}")<br><br><em>#&nbsp;计算平均价格</em><br>avg_price&nbsp;=&nbsp;df&#091;'Price'].mean()<br>print(f"Average&nbsp;Price:&nbsp;${avg_price:.2f}")

解释

  • 1
    df['Quantity'] * df['Price']

    计算每行的销售额。

  • 1
    .sum()

    计算总销售额。

  • 1
    groupby()

    1
    idxmax()

    方法找出销售量最高的产品。

  • 1
    mean()

    计算平均价格。

输出结果


1
2
3
Total Sales: $2500.00
Top Product: Apple
Average Price: $1.67

通过上述步骤,我们可以快速地分析销售数据,并得出有用的结论。这对于业务决策非常有帮助。

总结

本文介绍了如何在 Python 中进行基本的文件操作,包括打开、读取、写入和关闭文件,并且展示了如何使用

1
csv

模块和

1
pandas

库来处理 CSV 文件。最后通过一个实战案例演示了如何利用 Python 分析销售数据,提供了从数据读取到分析的一整套解决方案。这些知识对于任何希望提高数据处理能力的 Python 开发者来说都是不可或缺的。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

安全运维之道:发现、解决问题的有效闭环

2024-4-14 20:59:36

安全运维

稳定性建设 – 架构优化的关键策略

2025-2-11 17:15:56

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索