文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

实用 Python:文件与目录管理的 17 个技巧

2024-11-29 22:18

关注

1. 打开与读取文件

目标:学习如何安全地打开文件并读取内容。

技巧:使用with open()语句自动管理文件资源,防止忘记关闭文件。

示例代码:

with open('example.txt', 'r') as file:
    content = file.read()
print(content)

这段代码会打开名为'example.txt'的文件,读取其全部内容并打印出来,之后自动关闭文件。

2. 逐行读取

技巧:使用for line in file:逐行读取文件,适合处理大文件。

示例:

with open('example.txt', 'r') as file:
    for line in file:
        print(line.strip())  # strip()移除行尾换行符

3. 写入文件

目标:学会向文件追加或覆盖内容。

使用'w'模式覆盖原有内容,'a'模式追加内容。

示例(追加):

with open('example.txt', 'a') as file:
    file.write("\nHello, Python!")

4. 创建新文件

技巧:使用open函数以写入模式('w')打开不存在的文件即可创建它。

注意,这会覆盖同名文件。

5. 目录操作

使用os模块来操作目录。

示例:列出当前目录下的所有文件和子目录。

import os
print(os.listdir())

6. 检查路径存在

使用os.path.exists(path)检查路径是否存在。

示例:

if os.path.exists('new_directory'):
    print("Directory exists!")
else:
    os.mkdir('new_directory')  # 创建目录

7. 文件重命名

使用os.rename(oldname, newname)重命名文件。

注意:跨目录移动文件时,也可以用此方法。

8. 删除文件

使用os.remove(filename)小心删除文件。

删除前最好检查文件是否存在,避免错误。

9. 遍历目录树

使用os.walk(top)来递归地遍历目录树。

示例:

for root, dirs, files in os.walk('.'):  # '.'表示当前目录
    for name in files:
        print(os.path.join(root, name))

10. 文件路径操作

pathlib模块提供了一种更面向对象的方式来处理路径。

示例:

from pathlib import Path
my_file = Path('my_folder/my_file.txt')
my_file.touch()  # 创建文件
print(my_file.name)  # 输出文件名

11. 读写二进制文件

对于图片、音频等二进制文件,使用'rb'或'wb'模式。

示例(读取图片):

with open('image.jpg', 'rb') as file:
    image_data = file.read()

 错误处理

在文件操作中,使用try...except处理可能的异常,如文件不存在错误(FileNotFoundError)。

示例:

try:
    with open('nonexistent.txt', 'r') as file:
        print(file.read())
except FileNotFoundError:
    print("文件未找到,请检查路径。")

通过这些步骤,你已经掌握了Python文件与目录管理的基础和一些进阶技巧。

进阶与高级应用

13. 批量重命名文件

技巧:利用循环和字符串操作,批量重命名文件,这对于整理大量文件特别有用。

示例代码(将一个目录下所有.jpg文件重命名为序列格式):

import os

directory = 'image_folder'
counter = 1
for filename in os.listdir(directory):
    if filename.endswith(".jpg"):  # 确定是.jpg文件
        new_filename = f"image_{counter}.jpg"
        src = os.path.join(directory, filename)
        dst = os.path.join(directory, new_filename)
        os.rename(src, dst)
        counter += 1

14. 使用shutil模块进行文件操作

shutil模块提供了高级文件和文件集合操作,如复制、移动文件和目录。

文件复制:

import shutil
shutil.copy('source.txt', 'destination.txt')

目录复制(包括目录下所有内容):

shutil.copytree('source_folder', 'destination_folder')

15. 文件压缩与解压

使用zipfile模块处理.zip文件,tarfile处理.tar文件。

压缩文件:

import zipfile
with zipfile.ZipFile('archive.zip', 'w') as zipf:
    zipf.write('file_to_compress.txt')

解压文件:

with zipfile.ZipFile('archive.zip', 'r') as zip_ref:
    zip_ref.extractall('unzip_folder')

16. 高效读写大数据文件

对于非常大的文件,可以考虑分块读写,避免一次性加载到内存中。

分块读取:

chunk_size = 1024 * 1024  # 1MB
with open('large_file.txt', 'r') as f:
    while True:
        chunk = f.read(chunk_size)
        if not chunk:
            break
        process(chunk)  # 假设process是处理数据的函数

17. 文件路径的智能处理 - pathlib的高级用法

利用Path对象的灵活性,可以更自然地操作路径。

创建路径链接:

from pathlib import Path
link = Path('shortcut').symlink_to('target_folder')

检查文件类型:

if my_file.is_file():
    print("是文件")
elif my_file.is_dir():
    print("是目录")

通过这些高级技巧,你的Python文件与目录管理能力将进一步提升。

来源:手把手PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯