网站Logo 90的blog

Python文件操作

root
15
2023-11-10

文件操作是实现数据持久化的重要手段

一、文件操作基础

(一)打开文件

#使用 open() 函数打开文件,需要指定文件路径和打开模式。
f = open('1.txt', mode='w', encoding='utf-8')

参数说明

file:文件路径,可以是相对路径或绝对路径。

mode:打开模式,默认为 'r'(只读模式)。

'r':只读模式,文件必须存在。

'w':覆盖写模式,如果文件存在则清空内容,如果不存在则创建。

'a':追加写模式,如果文件存在则在末尾追加内容,如果不存在则创建。

encoding:编码格式,默认为 None。常见的编码格式有 utf-8、gbk、gb2312、gb18030 等。

(二)读写文件

1. 读取文件内容

read():读取文件的全部内容,返回一个字符串。

readline():逐行读取一行内容,返回一个字符串。

readlines():读取文件的全部内容,返回一个列表,每行内容为一个元素。

f = open('1.txt', mode='r', encoding='utf-8')

content = f.read()  # 读取全部内容

print(content)

content = f.readline()  # 逐行读取一行内容

print(content)

content = f.readlines()  # 读取多行内容

print(content)

2. 写入文件内容

write():写入内容,返回写入的字符数。

writelines():写入多行内容,参数为一个字符串列表。

f = open('1.txt', mode='w', encoding='utf-8')

f.write('哈哈哈\n')  # 写入内容

f.writelines(['hello\n', '123'])  # 写入多行内容

3. 指针操作

seek():设置文件指针的位置。

tell():返回文件指针的当前位置。

f.seek(5)  # 设置指针位置

content = f.read()  # 从指针位置开始读取

print(content)

print(f.tell())  # 返回指针位置

(三)关闭文件

使用 close() 方法关闭文件,释放系统资源。

f.close()

二、文件上下文管理器

文件上下文管理器可以自动管理文件的打开和关闭,确保文件在使用后正确关闭。

with open('1.txt', mode='w', encoding='utf-8') as f:

    f.write('hello python')

    print(111)  # 文件在上下文管理器结束后自动关闭

三、文件类型

(一)文本文件

文本文件是以文本形式存储的数据,常见的格式有 .txt、.csv、.ini 等。

示例:读写文本文件

# 写入文本文件

with open('demo.txt', mode='w', encoding='utf-8') as f:

    f.write('hello python')

# 读取文本文件

with open('demo.txt', mode='r', encoding='utf-8') as f:

    content = f.read()

    print(content)

(二)二进制文件

二进制文件是以二进制形式存储的数据,常见的格式有图片(.jpg、.png)、视频(.mp4)、音频(.mp3)等。

示例:下载图片

import requests

url = 'https://i0.hdslb.com/bfs/archive/af6cb3bd7ca47b5aac1e853d0e586363f47f0d95.jpg'

resp = requests.get(url)

print(resp.content)  # 返回二进制数据

# 写入二进制文件

with open('demo.jpg', mode='wb') as f:

    f.write(resp.content)

示例:下载视频

import requests

url = 'https://v3-web.douyinvod.com/08d4e6ad52bf99678351471d93f88d64/669a01c2/video/tos/cn/tos-cn-ve-15/oY1AQWFEnoNu06AKAiDAIscx9vmgzBaAf8EmfJ/?a=6383&br=1034&bt=1034&btag=c0000e00038000&cd=0%7C0%7C0%7C3&ch=5&cquery=101s_100B_100H_100K_100o&cr=3&cs=0&cv=1&dr=0&ds=6&dy_q=1721357469&feature_id=f0150a16a324336cda5d6dd0b69ed299&ft=4TMWc6DhppftDFLB.s2.C_fauVq0In-WnXtc6BYqDdk6HQdHDDO4ekps4BaM7usZ.&is_ssr=1&l=2024071910510854F4A5856F7E7E7EFB50&lr=all&mime_type=video_mp4&qs=0&rc=OTpnOmc0NGQ2ZjU0ZDs6M0Bpandmd3I5cmV2czMzNGkzM0BiXmFiLTIvNi4xMGMwLi80YSMyLS9vMmRram1gLS1kLWFzcw%3D%3D'

headers = {

    "Referer": "https://www.douyin.com/",

    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"

}

resp = requests.get(url, headers=headers)

print(resp.content)  # 返回二进制数据

# 写入二进制文件

with open('demo.mp4', mode='wb') as f:

    f.write(resp.content)

四、文件操作练习

(一)修改文件内容

# 打开文件,读取内容

with open('demo.txt', mode='r+', encoding='utf-8') as f:

    content = f.readlines()

    print(content)

    # 修改第一行内容

    content[0] = 'world\n'

    print(content)

    # 将指针移回文件开头

    f.seek(0)

    f.writelines(content)

五、总结

本文详细介绍了 Python 中的文件操作,包括文件的打开、读写、关闭,以及文件上下文管理器的使用。同时,还介绍了如何处理文本文件和二进制文件。通过掌握这些内容,可以更好地实现数据的持久化存储。

动物装饰