今天是学习python的第三天,和我一起来梳理一下今天学习的知识吧

一、今日学习目录

  1. open()函数的使用

  2. read()、readline()、readlines()方法

  3. write()与writelines()方法

  4. 绝对路径与相对路径

  5. CSV文件操作

  6. 库的相关操作

二、文件操作基础

1. open()函数

基本语法

f = open(文件路径, 模式, encoding='编码方式')

常用模式

模式 说明
'r' 只读模式(默认)
'w' 写入模式(会覆盖原内容)
'a' 追加模式
'x' 创建新文件写入
'b' 二进制模式
'+' 读写模式

示例代码

# 只读模式打开文件
f = open('test.txt', 'r', encoding='utf-8')
print(f.read())
f.close()  # 记得关闭文件

2. read()、readline()、readlines()详解

#假如f为一个文件对象类型

read() - 读取全部内容

content = f.read()
    print(content)

readline() - 逐行读取

  # 读取第一行
    line1 = f.readline()
    print(f"第一行:{line1}")
    
    # 读取第二行
    line2 = f.readline()
    print(f"第二行:{line2}")

readlines() - 读取所有行到列表

  # 返回列表,每个元素是一行
    lines = f.readlines()
    print(f"总行数:{len(lines)}")
    
    for i, line in enumerate(lines, 1):
        print(f"第{i}行:{line.strip()}")
  • read() → 读全部 → 返回 字符串
  • readline() → 只读一行 → 返回 字符串
  • readlines() → 读全部行 → 返回 列表

三、文件写入操作

3. write() - 写入字符串

# 写入模式(会覆盖)
with open('output.txt', 'w', encoding='utf-8') as f:
    f.write('Hello, Python!\n')
    f.write('这是第二行\n')
    
    
# 写入多个字符串
with open('output.txt', 'w', encoding='utf-8') as f:
    f.write('第一行\n第二行\n第三行')

4. writelines() - 写入字符串列表

python

# 准备数据
lines = ['苹果\n', '香蕉\n', '橙子\n']  # 需要手动添加换行符

with open('fruits.txt', 'w', encoding='utf-8') as f:
    f.writelines(lines)

# 更灵活的方式
fruits = ['苹果', '香蕉', '橙子', '葡萄']
with open('fruits2.txt', 'w', encoding='utf-8') as f:
    f.writelines(f"{fruit}\n" for fruit in fruits)
  • write():写入单个字符串

  • writelines():写入字符串列表,不会自动添加换行符

四、路径管理

绝对路径 vs 相对路径

绝对路径:从根目录开始的完整路径

python

# Windows示例
file_path = r'C:\Users\YourName\Documents\file.txt'

相对路径:相对于当前工作目录的路径

# 当前目录下的文件
with open('data.txt', 'r') as f:
    

# 子目录下的文件
with open('subfolder/data.txt', 'r') as f:

# 上级目录下的文件
with open('../parent_data.txt', 'r') as f:
    pass

五、CSV文件处理

什么是CSV?

CSV是逗号分隔值文件,常用在数据交换中。

读取CSV文件

使用基本的文件操作,例:

 f=open('中国十二时辰.csv','r',encoding='utf-8')
 ls=[]
 for line in f:
     line=line.replace('\n','')
     ls.append(line.split(','))

写入CSV文件

这里open()函数第二个参数如果是w表示写入,当前目录如果没有该文件则会创建一个该文件

write()方法可以写入字符串

r2=open('你好.csv','w')
r2.write('Hello')

综合实例1:实现读取"中国十二时辰.csv"文件

第一步:复制该文件的存放路径(或者直接将该文件放入你当前的工作文件)

第二步:读取该文件

f=open('中国十二时辰.csv','r',encoding='utf-8')

第三步:进行一系列处理,具体如下:

f=open('中国十二时辰.csv','r',encoding='utf-8')
# 定义空列表,用于存放读取到的时辰二维数据
ls=[]
# 逐行遍历打开的csv文件对象f
for line in f:
    # 去除每行末尾的换行符
    line=line.replace('\n','')
    # 以逗号切割每行字符串,转为列表并添加到总列表中
    ls.append(line.split(','))

# 开启无限循环,持续接收用户输入查询
while True:
    # 接收用户输入的时间字符串
    time_num=input("请输入时间:")
    # 异常捕获,防止输入格式非法导致程序崩溃
    try:
        # 校验小时、分钟数值范围是否合法
        if (24<int(time_num[0:2]) or int(time_num[0:2])<0 or 60<int(time_num[3:]) or int(time_num[3:])<0) :
            print("输入时间格式有误")
            continue
    except:
        # 捕获格式错误、下标越界、非数字等异常
        print("输入时间格式有误")
        continue

# 将输入的时分统一换算为总分钟数,方便区间比对
time_1=int(time_num[0:2])*60+int(time_num[3:])
# 遍历时辰数据,跳过表头第一行
for line in ls[1:]:
    # 提取当前时辰开始时间,换算为总分钟
    time_first=int(line[1][0:2])*60+int(line[1][3:5])
    # 提取当前时辰结束时间,换算为总分钟
    time_last=int(line[1][6:8])*60+int(line[1][9:11])
    # 判断输入时间是否在当前时辰区间内
    if time_first<=time_1 and time_last>=time_1:
        # 打印匹配到的时辰、属相、描述信息
        print('时辰:',line[0],'\n属相:',line[2],'\n别名和描述:',line[3])
        break
    # 单独处理子时跨天特殊时间段:23点~24点 与 0点~1点
    elif (23*60<time_1<=24*60)or(0<=time_1<=1*60):
        print('时辰:',line[0],'\n属相:',line[2],'\n别名和描述:',line[3])
        break;
# 关闭文件,释放资源
f.close()

综合实例2:实现整理HTML网页内容

直接放原码

# 打开网页源码文件,以只读模式读取,使用utf-8编码保证中文不乱码
r1=open('中国城市名称大全.html','r',encoding='utf-8')

# 新建/打开csv文件,以写入模式存储提取出来的城市名
r2=open('中国城市大全.csv','w')

# 定义空列表,用于存放提取出的所有城市名称
a=[]

# 逐行读取html文件内容
for line in r1:
    # 判断当前行是否包含城市信息所在的div标签
    if '<div class="para" label-module="para">' in line:
        # 对该行字符串进行分割,提取出城市名称,并按空格分割成列表,添加到a中
        a+=line.split('>')[1].split('<')[0].split(' ')

# 遍历所有提取到的城市名称,逐个写入csv文件
for i in a:
    # 每个城市名后面加逗号,符合csv文件格式
    r2.write(i+',')

# 关闭读取的html文件
r1.close()

# 关闭写入的csv文件
r2.close()

六、库的相关操作

1. 库的安装

pip install 库名
# 示例:安装数据处理库
pip install pandas

2. 查看已安装库

# 查看当前环境所有已安装第三方库及版本
pip list

# 精准查询单个库是否安装、版本、路径
pip show 库名

3. 库的卸载

pip uninstall 库名

4. 库版本升级

pip install --upgrade 库名

5. 导入库使用

# 方式1:直接导入
import time

# 方式2:别名导入(简化书写,常用)
import time as t

今天的内容就这么多啦!明天再分享更多的python知识,大家的点赞关注是我更新的动力!


💪 坚持打卡第3天!掌握文件操作,Python技能又进一步!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐