想知道 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 文件读取,让你在编程的道路上越走越远!
评论(0)