1.2、Python 与编程基础:文件处理与常用库

一、Python 基础语法

学习一门语言,先要会最基本的三件事:

  • 存数据
  • 判断条件
  • 重复处理

这就是变量、数据类型、条件判断和循环。

1. 变量是什么

变量可以理解成一个"有名字的盒子",用来保存数据。

例如:

python 复制代码
name = "Eric"
age = 20

这里:

  • name 保存的是 "Eric"
  • age 保存的是 20

以后你写程序时,很多内容都要先放进变量里,再去处理。


2. 基本数据类型是什么

Python 里最常用的几种数据类型如下。

int:整数

整数就是没有小数部分的数字。

python 复制代码
age = 20
count = 100
float:浮点数

浮点数就是带小数的数字。

python 复制代码
price = 19.9
score = 95.5
str:字符串

字符串就是文本内容,要用引号包起来。

python 复制代码
name = "Eric"
city = "Shanghai"
bool:布尔值

布尔值只有两个结果:

  • True:真
  • False:假
python 复制代码
is_student = True
is_open = False

它通常用来表示"是否""对不对""成立不成立"。

list:列表

列表用来保存一组有顺序的数据。

python 复制代码
skills = ["Python", "Git", "Linux"]

你可以通过位置取值:

python 复制代码
print(skills[0])

输出:

python 复制代码
Python
dict:字典

字典用来保存"键-值"对应关系,也就是"字段名"和"字段值"。

python 复制代码
user = {
    "name": "Eric",
    "age": 20
}

你可以通过键来取值:

python 复制代码
print(user["name"])

输出:

python 复制代码
Eric

字典在 Python 开发里非常重要,因为后面 JSON、接口返回值、配置数据,很多都是这种结构。


3. 为什么要先学这些类型

因为后面你做的很多事情,本质上都是在处理这些数据:

  • 读文件,拿到的是字符串
  • JSON 解析后,通常是字典和列表
  • 接口返回值,通常也是字典
  • 表格中的列和行,也可以理解成结构化数据

所以这些类型不是语法细节,而是后面一切处理逻辑的基础。


4. 条件判断

程序不是一直从上到下机械执行,很多时候要根据条件做不同的事,这就需要 if

python 复制代码
score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

这段代码的意思是:

  • 分数大于等于 90,输出"优秀"
  • 否则如果大于等于 60,输出"及格"
  • 否则输出"不及格"

判断是程序做决策的基础。


5. 循环

循环用来重复处理数据。

python 复制代码
numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num)

这里的意思是:把列表里的每个数字依次取出来打印。

后面你处理文件、处理 JSON、处理表格时,都会经常用循环遍历数据。


二、函数、类、模块

会写基础语法之后,下一步不是"写更多代码",而是学会把代码组织起来

1. 函数

函数就是把一段逻辑封装起来,给它一个名字,需要时直接调用。

python 复制代码
def add(a, b):
    return a + b

result = add(3, 5)
print(result)

这里:

  • def 表示定义函数
  • ab 是参数
  • return 表示返回结果

函数最大的意义不是语法,而是拆逻辑

比如一个脚本要做三件事:

  1. 读取文件
  2. 处理数据
  3. 保存结果

那就最好拆成三个函数,而不是一坨代码全堆在一起。

例如:

python 复制代码
def read_file():
    pass

def process_data():
    pass

def save_result():
    pass

这样代码会更清晰,也更容易修改。


2. 类

类是另一种组织代码的方式。

函数更像"做一件事",类更像"描述一种对象"。

例如定义一个用户类:

python 复制代码
class User:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print(f"Hello, {self.name}")

使用:

python 复制代码
user = User("Eric")
user.say_hello()

这里可以先简单理解:

  • class 用来定义类
  • __init__ 是初始化方法
  • self 表示对象自己
  • say_hello 是这个对象能做的事情

这一阶段对类的要求不用太高。你只需要先知道:

  • 类是组织代码的一种方式
  • 初学项目里,很多时候函数就够了
  • 能看懂简单类,能写简单类,就可以了

3. 模块

模块本质上就是把代码拆到不同文件里。

比如有一个 utils.py

python 复制代码
def greet(name):
    return f"Hello, {name}"

另一个文件 main.py

python 复制代码
from utils import greet

print(greet("Eric"))

这样做的好处是:

  • 主流程和工具函数分开
  • 文件职责更清晰
  • 项目更容易维护

后面写项目时,通常会有这种结构:

  • main.py:主入口
  • utils.py:工具函数
  • api.py:接口调用
  • config.py:配置

三、文件读写

写程序不能一直只处理写死在代码里的数据。

真正的程序要能从外部读取内容,也要能把结果保存出去。

1. 读取文件

python 复制代码
with open("demo.txt", "r", encoding="utf-8") as f:
    content = f.read()

print(content)

这里有几个点要理解:

  • open() 用来打开文件
  • "r" 表示读取模式
  • encoding="utf-8" 表示按 UTF-8 编码读取
  • f.read() 表示把全部内容读出来

with open(...) 的写法很常见,因为用完后文件会自动关闭。


2. 写入文件

python 复制代码
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("Hello, file")

这里:

  • "w" 表示写入模式
  • 如果文件不存在,会新建
  • 如果文件已存在,原内容会被覆盖

3. 按行读取

有些时候不想一次把整个文件全读进来,而是想一行一行处理。

python 复制代码
with open("demo.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())

这里的 strip() 是去掉每行末尾的换行符。

按行读取特别适合:

  • 处理日志
  • 处理大文件
  • 逐行分析文本

4. 为什么要写 encoding="utf-8"

因为文本文件必须按某种编码方式读写,否则可能出现乱码。

UTF-8 是现在最常见、最通用的文本编码方式,所以平时读写文本文件时,优先显式写上:

python 复制代码
encoding="utf-8"

这样更稳。


四、JSON 处理

1. JSON 是什么

JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种很常见的数据交换格式。

例如:

json 复制代码
{
  "name": "Eric",
  "age": 20,
  "skills": ["Python", "Git"]
}

它看起来很像 Python 里的字典和列表。

实际上,在 Python 里处理 JSON 时,很多时候就是把它转成字典和列表来操作。


2. 读取 JSON 文件

python 复制代码
import json

with open("user.json", "r", encoding="utf-8") as f:
    data = json.load(f)

print(data)
print(data["name"])

这里:

  • import json 导入 JSON 模块
  • json.load(f) 表示从文件中读取 JSON 并解析成 Python 对象

如果 JSON 文件里是对象结构,解析后通常得到字典。

如果 JSON 文件里是数组结构,解析后通常得到列表。


3. 写入 JSON 文件

python 复制代码
import json

result = {
    "name": "Eric",
    "level": "beginner"
}

with open("result.json", "w", encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False, indent=2)

这里:

  • json.dump() 表示把 Python 对象写成 JSON
  • ensure_ascii=False 表示正常保存中文
  • indent=2 表示格式化缩进,更方便阅读

4. 为什么 JSON 这么重要

因为后面你做接口开发时,几乎一定会碰到:

  • 请求参数是 JSON
  • 返回数据是 JSON
  • 配置文件可能是 JSON

所以学 JSON,不是因为它高级,而是因为它非常常用。


五、异常处理

程序运行时,不可能总是"刚好一切正常"。

文件可能不存在,用户可能输错,网络可能断开,接口可能超时。

这些错误如果不处理,程序就会直接报错退出。

1. 基本写法

python 复制代码
try:
    x = int(input("请输入一个数字:"))
    print(x)
except ValueError:
    print("输入的不是数字")

这里的意思是:

  • try 里放"可能出错"的代码
  • 如果发生 ValueError,就执行 except 里的处理逻辑

2. 文件读取中的异常处理

python 复制代码
try:
    with open("demo.txt", "r", encoding="utf-8") as f:
        content = f.read()
except FileNotFoundError:
    print("文件不存在")

这表示:

  • 如果文件找不到,不让程序直接崩掉
  • 而是给出一个明确提示

3. 为什么异常处理重要

异常处理不是"高级技巧",而是让程序更像真实软件的基础。

没有异常处理的程序,常常很脆弱。

有了异常处理,程序至少能在出问题时:

  • 给出解释
  • 避免直接崩溃
  • 让后续排查更容易

六、requests

1. requests 是什么

requests 是 Python 中最常用的 HTTP 请求库之一。

它的作用是让你的程序能够访问网络接口。

你以后做大模型应用开发时,经常会用它来:

  • 调用天气接口
  • 调用翻译接口
  • 调用模型接口
  • 调用第三方服务

2. 最简单的请求

python 复制代码
import requests

response = requests.get("https://api.github.com")
print(response.status_code)
print(response.text)

这里:

  • requests.get() 发送一个 GET 请求
  • response.status_code 是状态码
  • response.text 是返回的文本内容

3. 解析 JSON 返回值

很多接口返回的不是普通文本,而是 JSON。

python 复制代码
import requests

response = requests.get("https://api.github.com")
data = response.json()

print(data)

这里的 response.json() 会把返回结果解析成 Python 对象,通常就是字典或列表。


4. 带参数请求

python 复制代码
import requests

params = {"q": "python"}
response = requests.get("https://httpbin.org/get", params=params)

print(response.json())

这里的 params 表示查询参数。


5. 加上异常处理

python 复制代码
import requests

try:
    response = requests.get("https://api.github.com", timeout=10)
    response.raise_for_status()
    data = response.json()
    print(data)
except requests.exceptions.RequestException as e:
    print("请求失败:", e)

这里:

  • timeout=10 表示最多等 10 秒
  • raise_for_status() 表示如果状态码异常,就抛出错误
  • RequestException 是网络请求相关异常的总类

这才更接近真实项目里的写法。


七、pandas 基础

1. pandas 是什么

pandas 是 Python 里最常用的数据处理库之一,特别适合处理表格型数据。

比如:

  • CSV 文件
  • Excel 文件
  • 结构化数据统计

2. DataFrame 是什么

pandas 最核心的对象叫 DataFrame

你可以把它理解成"Python 里的表格"。

一行一行是记录,一列一列是字段,和你看到的 Excel 表很像。


3. 读取 CSV 文件

python 复制代码
import pandas as pd

df = pd.read_csv("data.csv")
print(df)

这里:

  • import pandas as pd 是常见写法
  • pd.read_csv() 用来读取 CSV 文件
  • df 通常就是一个 DataFrame

4. 查看前几行

python 复制代码
print(df.head())

head() 默认显示前 5 行,方便你快速看数据长什么样。


5. 选择某一列

python 复制代码
print(df["name"])

这表示取出 name 这一列。


6. 条件筛选

python 复制代码
result = df[df["score"] > 80]
print(result)

这表示筛选出 score 大于 80 的所有行。


7. 保存结果

python 复制代码
result.to_csv("result.csv", index=False)

这里:

  • to_csv() 表示导出成 CSV 文件
  • index=False 表示不把行号写进去

8. 为什么 pandas 值得学

因为真实开发里,经常会遇到这种需求:

  • 读取一张表
  • 筛选符合条件的数据
  • 做简单统计
  • 导出结果

如果只靠最原始的列表和字典处理,会很慢也很麻烦。

pandas 就是专门解决这类问题的。


八、补充两个很实用的基础点

1. 路径处理

后面读写文件时,建议逐步接触 pathlib,比自己手写路径字符串更稳。

python 复制代码
from pathlib import Path

file_path = Path("data") / "demo.txt"
print(file_path)

它的好处是:

  • 路径拼接更清晰
  • 跨平台更方便
  • 可读性更好

2. 环境变量

后面调 API 时,不要把密钥直接写死在代码里。

更好的做法是放进环境变量或 .env 文件里。

这部分你后面学 API 项目时再展开,但现在先知道这个习惯很重要。


九、总结

这一阶段的核心,不是"学完 Python 语法",而是把最基础的应用开发能力串起来。

你应该逐步建立这样一条主线:

  • 用变量和数据类型保存数据
  • 用判断和循环处理逻辑
  • 用函数、类、模块组织代码
  • 用文件读写和 JSON 处理输入输出
  • 用异常处理提升程序稳定性
  • requests 调接口
  • pandas 处理表格数据

如果这些内容学扎实了,你已经具备了做小项目的基础,比如:

  • 天气查询脚本
  • 翻译接口工具
  • CSV 批量处理工具
  • 命令行聊天机器人
相关推荐
Hello.Reader3 小时前
一堆 `.ts` 分片合并后音画不同步?从问题定位到通用修复脚本的完整实战
python·ffmpeg·视频
结衣结衣.3 小时前
【Linux】命名管道的妙用:实现进程控制与实时字符交互
linux·运维·开发语言·学习·操作系统·交互
好家伙VCC3 小时前
**CQRS模式实战:用Go语言构建高并发读写分离架构**在现代分布式系统中,随着业务复杂度的提升和用户量的增长,传统的单数据库模型逐
java·数据库·python·架构·golang
fy121633 小时前
Java进阶——IO 流
java·开发语言·python
flyfox3 小时前
OpenClaw(龙虾) Skills 实战开发指南
人工智能·python·源码
程序喵大人3 小时前
C++依赖关系分析:5个工具理清模块关系
开发语言·c++
切糕师学AI3 小时前
Elasticsearch 深度解析:从核心原理到开发者实战
大数据·elasticsearch·搜索引擎·分布式搜索分析引擎
水深00安东尼3 小时前
C#猜数字小游戏
开发语言·c#