PYTHON基础技能 – Python文件与目录管理的15个技巧

释放双眼,带上耳机,听听看~!

今天我们将一起探索如何像专家一样管理你的文件和目录。无论是整理杂乱无章的文档,还是自动化备份过程,Python都提供了强大的工具。让我们从基础开始,逐步深入。

技巧1: 查看当前目录


1
import&nbsp;os<br>print(os.getcwd())&nbsp;&nbsp;<em>#&nbsp;输出当前工作目录</em>
  • 解释 : 使用
    1
    os.getcwd()

    获取并打印当前的工作目录,这是管理文件的第一步。

技巧2: 列出目录内容


1
files&nbsp;=&nbsp;os.listdir('.')&nbsp;&nbsp;<em>#&nbsp;列出当前目录下的所有文件和目录</em><br>print(files)
  • 小贴士 :
    1
    os.listdir('.')

    会返回当前目录下所有文件和目录的名字列表,

    1
    .

    表示当前目录。

技巧3: 创建新目录


1
os.mkdir('new_folder')&nbsp;&nbsp;<em>#&nbsp;创建新目录</em>
  • 注意 : 如果目录已存在,这会抛出错误。使用
    1
    os.makedirs()

    可以创建多级目录,且不会因为中间目录不存在而报错。

技巧4: 删除目录


1
<em>#&nbsp;确保目录为空</em><br>os.rmdir('new_folder')&nbsp;&nbsp;<em>#&nbsp;删除目录</em>
  • 警告 : 只有当目录为空时,
    1
    os.rmdir()

    才能成功删除目录。

技巧5: 复制文件


1
import&nbsp;shutil<br>shutil.copy('source.txt',&nbsp;'destination.txt')&nbsp;&nbsp;<em>#&nbsp;复制文件</em>
  • 扩展 :
    1
    shutil

    模块是处理文件和目录的瑞士军刀,

    1
    copy

    函数可以轻松复制文件。

技巧6: 移动或重命名文件


1
shutil.move('old_name.txt',&nbsp;'new_name.txt')&nbsp;&nbsp;<em>#&nbsp;移动或重命名文件</em>
  • 多功能 : 这个命令不仅可以移动文件到不同目录,也可以在同一目录内重命名文件。

技巧7: 遍历目录树


1
for&nbsp;root,&nbsp;dirs,&nbsp;files&nbsp;in&nbsp;os.walk('my_directory'):<br>&nbsp;&nbsp;&nbsp;&nbsp;print(f"Current&nbsp;directory:&nbsp;{root}")<br>&nbsp;&nbsp;&nbsp;&nbsp;print("Directories:",&nbsp;dirs)<br>&nbsp;&nbsp;&nbsp;&nbsp;print("Files:",&nbsp;files)
  • 深入探索 :
    1
    os.walk()

    递归地遍历目录树,非常适合批量操作。

技巧8: 读取文件内容


1
with&nbsp;open('example.txt',&nbsp;'r')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;content&nbsp;=&nbsp;file.read()<br>print(content)
  • 上下文管理器 : 使用
    1
    with

    语句自动管理文件资源,避免忘记关闭文件。

技巧9: 写入文件


1
with&nbsp;open('output.txt',&nbsp;'w')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;file.write("Hello,&nbsp;Python!")
  • 模式选择 :
    1
    'w'

    模式会覆盖原有内容,若要追加内容,应使用

    1
    'a'

    模式。

技巧10: 分割路径组件


1
from&nbsp;pathlib&nbsp;import&nbsp;Path<br>path&nbsp;=&nbsp;Path('path/to/file.txt')<br>print(path.stem)&nbsp;&nbsp;<em>#&nbsp;文件名不包括扩展名</em><br>print(path.parent)&nbsp;&nbsp;<em>#&nbsp;目录路径</em>
  • 现代方式 :
    1
    pathlib

    模块提供了更直观的路径操作方式,

    1
    stem

    1
    parent

    属性非常实用。

技巧11: 文件路径拼接


1
from&nbsp;pathlib&nbsp;import&nbsp;Path<br>path&nbsp;=&nbsp;Path('documents')&nbsp;/&nbsp;'report'&nbsp;/&nbsp;'2023_report.txt'<br>print(path)
  • 优雅拼接 : 使用
    1
    /

    操作符在不同操作系统间无缝拼接路径。

技巧12: 批量修改文件扩展名


1
import&nbsp;os<br>import&nbsp;glob<br>for&nbsp;file&nbsp;in&nbsp;glob.glob('*.txt'):&nbsp;&nbsp;<em>#&nbsp;匹配所有.txt文件</em><br>&nbsp;&nbsp;&nbsp;&nbsp;new_file&nbsp;=&nbsp;file.replace('.txt',&nbsp;'.bak')<br>&nbsp;&nbsp;&nbsp;&nbsp;os.rename(file,&nbsp;new_file)
  • 批量处理 : 结合
    1
    glob.glob()

    可以批量处理文件,这里将所有

    1
    .txt

    文件改名为

    1
    .bak

技巧13: 使用正则表达式进行文件筛选

在处理大量文件时,使用正则表达式可以精确地筛选出符合特定模式的文件名。


1
import&nbsp;re<br>import&nbsp;os<br><br>pattern&nbsp;=&nbsp;re.compile(r'^file\d+.txt$')&nbsp;&nbsp;<em>#&nbsp;匹配以file开头,后跟数字,再加.txt的文件</em><br>for&nbsp;filename&nbsp;in&nbsp;os.listdir('.'):<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;pattern.match(filename):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(filename)
  • 应用场景 : 当你需要根据复杂的命名规则来选择文件时,正则表达式非常有用。

技巧14: 文件大小检查

在复制或处理大文件之前,检查其大小是一个好习惯。


1
import&nbsp;os<br><br>file_size&nbsp;=&nbsp;os.path.getsize('large_file.txt')<br>print(f"文件大小:&nbsp;{file_size}&nbsp;字节")<br>if&nbsp;file_size&nbsp;&gt;&nbsp;1024&nbsp;*&nbsp;1024:&nbsp;&nbsp;<em>#&nbsp;检查是否超过1MB</em><br>&nbsp;&nbsp;&nbsp;&nbsp;print("这是一个大文件,处理时请注意性能。")
  • 性能考虑 : 对于大文件,预先知道大小可以帮助优化处理逻辑。

技巧15: 文件读写效率提升

对于大型文件,逐行读写而不是一次性读取整个文件可以显著提高效率。


1
<em>#&nbsp;读取大文件</em><br>with&nbsp;open('large_file.txt',&nbsp;'r')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;line&nbsp;in&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process(line)<br><br><em>#&nbsp;写入大文件</em><br>with&nbsp;open('output.txt',&nbsp;'w')&nbsp;as&nbsp;file:<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;item&nbsp;in&nbsp;large_data_list:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.write(f"{item}\n")
  • 解释 : 逐行处理减少了内存占用,适合处理超大文件。

总结

掌握文件与目录管理是Python编程中的基础也是关键技能。通过上述技巧和最佳实践,你不仅能够有效地组织和操作文件,还能在遇到复杂任务时游刃有余。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

安全运维之道:发现、解决问题的有效闭环

2024-4-14 20:59:36

安全运维

稳定性建设 – 架构优化的关键策略

2025-2-11 17:15:56

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索