想知道 Python 怎么读文件 吗?别着急,咱这就一步一个脚印,带你彻底搞懂 Python 文件读取的各种姿势!这可不是干巴巴的教科书,而是我多年摸爬滚打的经验总结,保证实用,而且接地气!

首先,最最基本的,就是 open() 函数了。你肯定听说过,对吧?它就像一把钥匙,能打开文件这扇大门。

python
f = open("my_file.txt", "r") # "r" 表示读取模式

这一行代码,就是告诉 Python,我要以只读模式打开名为 my_file.txt 的文件,然后把这个“文件对象”赋值给变量 f。 注意啊,这个 my_file.txt 要和你当前的 Python 脚本在同一个目录下,要不然你就得写完整的路径了。

打开文件之后呢?当然是读取内容啦!这里有几种方法:

  • read(): 一次性读取整个文件内容。如果文件很大,可得小心,内存可能会爆掉!想象一下,你一口气吃完一个超大号的披萨,不撑死才怪!

    python
    content = f.read()
    print(content)

  • readline(): 每次读取一行。这个比较稳妥,适合处理大文件。就好像你切披萨一样,每次吃一块,慢慢享受。

    python
    line = f.readline()
    print(line) # 读取第一行

  • readlines(): 把整个文件读取到一个列表中,每行作为一个元素。相当于把整个披萨切好,然后装盘。

    python
    lines = f.readlines()
    for line in lines:
    print(line.strip()) # 去掉每行末尾的换行符

我个人更喜欢用 readline() 或者循环遍历文件对象,因为这样更省内存,而且可以逐行处理数据,更加灵活。

等等,你可能会问,读完文件之后呢?别忘了,文件用完要关掉!就像用完厕所要冲水一样,是个好习惯!

python
f.close()

当然,更优雅的做法是使用 with 语句,它能自动帮你关闭文件,即使出现异常也不怕!

python
with open("my_file.txt", "r") as f:
for line in f:
print(line.strip())

看到没?用 with 语句,代码瞬间简洁了不少!而且不用操心 f.close() 的问题,简直不要太方便!

除了读取文本文件,Python 还能读取其他类型的文件,比如 CSV 文件。

这时候,csv 模块就派上用场了。

“`python
import csv

with open(“my_data.csv”, “r”) as f:
reader = csv.reader(f)
for row in reader:
print(row)
“`

这个代码会逐行读取 CSV 文件,并把每一行的数据作为一个列表打印出来。

如果要读取 JSON 文件,那就更简单了,用 json 模块就搞定了!

“`python
import json

with open(“my_data.json”, “r”) as f:
data = json.load(f)
print(data)
“`

json.load() 函数会把 JSON 文件中的数据转换成 Python 对象,比如字典或者列表,方便你进行后续处理。

读文件,可不仅仅是把内容打印出来那么简单。很多时候,我们需要对读取的数据进行处理,比如清洗、转换、分析等等。

举个例子,假设你的 my_file.txt 文件里是一些数字,每行一个,你想计算这些数字的总和。

“`python
total = 0
with open(“my_file.txt”, “r”) as f:
for line in f:
try:
number = float(line.strip()) # 尝试把每行转换成浮点数
total += number
except ValueError:
print(f”忽略无效行: {line.strip()}”)

print(f”数字总和: {total}”)
“`

这个代码会逐行读取文件,把每行转换成浮点数,然后累加起来。如果某一行不是数字,就忽略掉,并打印一条警告信息。

这里用到了 try...except 语句来处理可能出现的 ValueError 异常,保证程序的健壮性。

说实话,读文件看似简单,但真正用起来,会遇到各种各样的问题。比如文件编码问题,不同操作系统下的换行符问题,等等。

编码问题是最常见的坑之一。如果你的文件是用 UTF-8 编码的,而 Python 默认用的是 ASCII 编码,就可能出现乱码。

解决这个问题,可以在 open() 函数中指定编码方式:

python
with open("my_file.txt", "r", encoding="utf-8") as f:
# ...

这样,Python 就会用 UTF-8 编码来读取文件,避免乱码问题。

还有,不同操作系统下的换行符是不一样的。Windows 用 \r\n,Linux 和 macOS 用 \n。这可能会导致一些意想不到的问题。

一个简单的解决方法是使用 strip() 函数去掉每行末尾的换行符,就像我在前面的例子里做的那样。

总之,Python 怎么读文件,看似简单,实则需要掌握很多细节。熟练掌握这些技巧,才能在实际工作中游刃有余,避免踩坑。希望这篇文章能帮你更深入地理解 Python 文件读取,让你在编程的道路上越走越远!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。