最近整理了些python书籍用来查漏补缺,分享给大家
链接:夸克网盘分享
文件就像电子笔记本,需要先“翻开”才能读写,用完必须“合上”(防止数据丢失)。
# 基本操作三步走
file = open("日记.txt", "w", encoding="utf-8") # 打开文件(模式为写入)
file.write("2025年2月21日 今天学会了Python文件操作!\n")
file.close() # 关闭文件(重要!)
核心知识点
编码参数:encoding="utf-8" 解决中文乱码问题
生活案例:
假设你每天记录体重,用追加模式最合适:
with open("体重记录.txt", "a", encoding="utf-8") as f:
f.write("2025-02-21 体重:65kg\n") # 自动换行
方法一:全部读取(适合小文件)
with open("天气预报.txt", "r", encoding="utf-8") as f:
content = f.read() # 一次性读取全部内容
print("本周天气:\n", content)
方法二:逐行读取(适合大文件)
with open("长篇小说.txt", "r", encoding="utf-8") as f:
for line in f: # 逐行读取不占内存
print(line.strip()) # strip()去掉换行符
❗ 注意陷阱
互动问题:如果尝试用r模式打开不存在的文件会怎样?
try:
num = int(input("请输入数字:"))
print(10 / num)
except ValueError:
print("输入的不是数字!")
except ZeroDivisionError:
print("不能除以零!")
else:
print("计算成功!") # 无异常时执行
finally:
print("程序运行结束") # 无论是否异常都执行
实战场景:读取用户文件时防崩溃
filename = input("请输入文件名:")
try:
with open(filename, "r", encoding="utf-8") as f:
print(f.read())
except FileNotFoundError:
print(f"找不到文件 {filename},请检查路径")
except UnicodeDecodeError:
print("文件编码错误,尝试用gbk编码打开")
扩展知识:用except Exception as e捕获所有异常,print(e)查看错误信息
import math
print("圆周率:", math.pi) # 输出 3.141592653589793
print("平方根:", math.sqrt(16)) # 输出 4.0
import requests
response = requests.get("https://weather.com/api/数据")
print("天气数据:", response.json()) # 假设返回JSON数据
def say_hello(name):
return f"你好,{name}!今天是2025年2月21日"
from my_module import say_hello
print(say_hello("小明"))
重要概念:
import datetime
def write_weather():
try:
city = input("请输入城市:")
temperature = float(input("请输入温度:"))
with open("weather_diary.txt", "a", encoding="utf-8") as f:
date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
f.write(f"{date} | {city} | {temperature}℃\n")
print("记录成功!")
except ValueError:
print("温度必须输入数字!")
def read_weather():
try:
with open("weather_diary.txt", "r", encoding="utf-8") as f:
print("\n历史天气记录:")
for line in f:
print(line.strip())
except FileNotFoundError:
print("还没有天气记录哦!")
# 主程序
while True:
print("\n1. 写记录 2. 看记录 3. 退出")
choice = input("请选择操作:")
if choice == "1":
write_weather()
elif choice == "2":
read_weather()
elif choice == "3":
break
else:
print("输入错误,请重新选择!")
下节预告:面向对象编程初探——用类描述现实世界(学生类、汽车类、银行账户类)
注意事项