Python基础04-操作系统中的文件与目录操作

在与操作系统交互时,我们经常需要执行文件和目录的操作。Python提供了丰富的库来帮助我们完成这些任务。以下是一些常见的操作,以及如何使用Python代码来实现它们。

1. 导航文件路径

在不同的操作系统中,文件路径的格式可能不同。Python的os.path模块可以帮助我们创建与操作系统兼容的路径。

import os
# 创建一个与底层操作系统兼容的路径
path = os.path.join('mystic', 'forest', 'artifact.txt')
# 获取该路径所在的目录
directory = os.path.dirname(path)
# 揭示文件的名称
artifact_name = os.path.basename(path)

2. 列出目录内容

要查看一个目录下的所有文件和子目录,可以使用os.listdir

import os
# 列出'enchanted_grove'目录下的所有内容
contents = os.listdir('enchanted_grove')
print(contents)

3. 创建目录

使用os.mkdir可以创建单个目录,而os.makedirs可以创建多级目录。

import os
# 创建一个名为'alchemy_lab'的目录
os.mkdir('alchemy_lab')
# 创建一个包含多个子目录的路径
os.makedirs('alchemy_lab/potions/elixirs')

4. 删除文件和目录

删除文件或目录可以使用os.removeos.rmdirshutil.rmtree

import os
import shutil
# 删除一个名为'unnecessary_scroll.txt'的文件
os.remove('unnecessary_scroll.txt')
# 删除一个空的目录'abandoned_hut'
os.rmdir('abandoned_hut')
# 删除一个目录及其所有内容,包括子目录
shutil.rmtree('cursed_cavern')

5. 执行Shell命令

通过subprocess模块,我们可以在Python中执行Shell命令。

import subprocess
# 执行'echo'命令并捕获输出
result = subprocess.run(['echo', 'Revealing the arcane'], capture_output=True, text=True)
print(result.stdout)

6. 处理环境变量

os.environ是一个字典,它包含了环境变量。

import os
# 读取'PATH'环境变量
path = os.environ.get('PATH')
# 创建一个新的环境变量
os.environ['MAGIC'] = 'Arcane'

7. 更改当前工作目录

使用os.chdir可以改变当前工作目录。

import os
# 切换到'arcane_library'目录
os.chdir('arcane_library')

8. 检查路径存在性及类型

os.path.existsos.path.isdiros.path.isfile可以帮助我们检查路径的存在性及其类型。

import os
# 检查'mysterious_ruins'路径是否存在
exists = os.path.exists('mysterious_ruins')
# 判断'mysterious_ruins'是否是目录
is_directory = os.path.isdir('mysterious_ruins')
# 确定'ancient_manuscript.txt'是否是文件
is_file = os.path.isfile('ancient_manuscript.txt')

9. 使用临时文件和目录

tempfile模块提供了创建临时文件和目录的功能。

import tempfile
# 创建一个临时文件,并指定不自动删除
temp_file = tempfile.NamedTemporaryFile(delete=False)
print(temp_file.name)
# 创建一个临时目录
temp_dir = tempfile.TemporaryDirectory()
print(temp_dir.name)

10. 获取系统信息

通过osplatform模块,我们可以获取操作系统的名称和详细信息。

import os
import platform
# 获取操作系统的名称,如'posix', 'nt', 'java'
os_name = os.name
# 获取详细的系统信息,如'Linux', 'Windows', 'Darwin'
system_info = platform.system()

11. 文件权限和属性

os.chmod可以用来改变文件的权限,而os.stat可以获取文件的属性。

import os
# 更改文件权限,这里设置为可读写
os.chmod('spell_book.txt', 0o644)
# 获取文件属性
file_stats = os.stat('spell_book.txt')
print(file_stats)

12. 文件复制和移动

shutil.copyshutil.move分别用于复制和移动文件。

import shutil
# 复制文件
shutil.copy('spell_book.txt', 'backup_spell_book.txt')
# 移动文件
shutil.move('backup_spell_book.txt', 'ancient_tome.txt')

13. 文件比较

filecmp模块可以用来比较两个文件是否相同。

import filecmp
# 比较两个文件是否相同
is_same = filecmp.cmp('spell_book.txt', 'ancient_tome.txt')
print(is_same)

14. 文件锁定

fcntl模块(在UNIX系统上)可以用于锁定文件。

import fcntl
import os
# 锁定文件,以防止其他进程同时修改
with open('grimoire.txt', 'w') as f:
    fcntl.lockf(f, fcntl.LOCK_EX)
    # 进行文件操作
    f.write('Secret incantations')
    # 解锁文件
    fcntl.lockf(f, fcntl.LOCK_UN)

15. 符号链接和硬链接

os.symlinkos.link分别用于创建符号链接和硬链接。

import os
# 创建一个指向'grimoire.txt'的符号链接
os.symlink('grimoire.txt', 'grimoire_link.txt')
# 创建一个硬链接
os.link('grimoire.txt', 'grimoire_hardlink.txt')

通过这些操作,我们可以在Python中高效地管理文件系统。这些操作覆盖了文件和目录管理的大部分基本需求,无论是在脚本编写还是应用程序开发中都非常有用。

civilpy:Python数据分析及可视化实例目录944 赞同 · 36 评论文章​编辑

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值