python中os库的具体使用
作者:iiiiheng
以下是关于 Python 中 os 库的一些常见知识点及相应的例子说明:
1. 导入 os 库
在使用 os 库之前,需要先导入它。通常使用以下方式导入:
import os
2. 获取当前工作目录
os.getcwd() 函数用于获取当前 Python 脚本所在的工作目录。
例子:
import os current_directory = os.getcwd() print("当前工作目录:", current_directory)
假设你的 Python 脚本在 /home/user/projects 目录下运行,那么输出可能是:
当前工作目录: /home/user/projects
3. 改变工作目录
os.chdir() 函数可以用来改变当前的工作目录。
例子:
import os # 假设当前工作目录是 /home/user/projects os.chdir("/home/user/documents") new_current_directory = os.getcwd() print("改变后的工作目录:", new_current_directory)
输出可能是:
改变后的工作目录: /home/user/documents
4. 列出目录内容
os.listdir() 函数用于列出指定目录下的所有文件和子目录(不包括隐藏文件和目录,除非特别设置)。
例子:
import os # 假设当前工作目录是 /home/user/documents directory_contents = os.listdir() print("目录内容:", directory_contents)
如果 /home/user/documents 目录下有文件 file1.txt、file2.jpg 和子目录 subdir,那么输出可能是:
目录内容: ['file1.txt', 'file2.jpg', 'subdir']
5. 创建目录
os.mkdir() 函数用于创建一个新的目录。
例子:
import os # 假设当前工作目录是 /home/user/documents new_directory_name = "new_dir" os.mkdir(new_directory_name) print(f"已创建目录:{new_directory_name}")
执行上述代码后,在 /home/user/documents 目录下将会创建一个名为 new_dir 的新目录。
6. 删除目录
os.rmdir() 函数用于删除一个空的目录(即目录内不能有任何文件或子目录)。
例子:
import os # 假设当前工作目录是 /home/user/documents directory_to_delete = "new_dir" os.rmdir(directory_to_delete) print(f"已删除目录:{directory_to_delete}")
执行上述代码后,将会删除在前面例子中创建的 new_dir 目录(前提是该目录为空)。
7. 判断文件或目录是否存在
os.path.exists() 函数用于判断指定的文件或目录是否存在。
例子:
import os file_path = "/home/user/documents/file1.txt" directory_path = "/home/user/documents/subdir" if os.path.exists(file_path): print(f"{file_path} 存在") else: print(f"{file_path} 不存在") if os.path.exists(directory_path): print(f"{directory_path} 存在") else: print(f"{directory_path} 不存在")
根据实际情况,将会输出相应的存在或不存在的信息。
8. 判断是文件还是目录
os.path.isfile() 函数用于判断指定的路径是文件还是目录,返回 True 如果是文件,False 如果是目录。同样,os.path.isdir() 函数用于判断是否为目录,返回 True 如果是目录,False 如果是文件。
例子:
import os path = "/home/user/documents/file1.txt" if os.path.isfile(path): print(f"{path} 是文件") else: print(f"{path} 是目录") path = "/home/user/documents/subdir" if os.path.isdir(path): print(f"{path} 是目录") else: print(f"{path} 是文件")
根据实际情况,将会输出相应的判断结果。
9. 获取文件大小
os.path.getsize() 函数用于获取指定文件的大小,单位是字节。
例子:
import os file_path = "/home/user/documents/file1.txt" file_size = os.path.getsize(file_path) print(f"{file_path} 的大小为 {file_size} 字节")
将会输出指定文件的大小信息。
10. 拼接路径
os.path.join() 函数用于将多个路径片段拼接成一个完整的路径,这样可以避免因操作系统不同而导致的路径分隔符问题(Windows 使用 \,Linux 和 macOS 使用 /)。
例子:
import os directory = "/home/user/documents" file_name = "file1.txt" full_path = os.path.join(directory, file_name) print(f"拼接后的路径:{full_path}")
输出将会是一个完整的路径,如:
拼接后的路径: /home/user/documents/file1.txt
11. 获取文件的绝对路径
os.path.abspath() 函数用于获取指定文件或目录的绝对路径。
例子:
import os relative_path = "test.txt" absolute_path = os.path.abspath(relative_path) print("文件的绝对路径:", absolute_path)
假设当前工作目录是 /home/user/documents,且该目录下存在 test.txt 文件,那么输出可能是:
文件的绝对路径: /home/user/documents/test.txt
12. 获取文件的扩展名
os.path.splitext() 函数可以将文件名拆分成文件名主体和扩展名两部分,并返回一个包含这两部分的元组。
例子:
import os file_path = "/home/user/documents/file1.txt" name, extension = os.path.splitext(file_path) print("文件名主体:", name) print("扩展名:", extension)
输出:
文件名主体: /home/user/documents/file1
扩展名:.txt
13. 分离路径中的目录和文件名
os.path.dirname() 和 os.path.basename() 函数分别用于获取路径中的目录部分和文件名部分。
例子:
import os file_path = "/home/user/documents/file1.txt" directory = os.path.dirname(file_path) filename = os.path.basename(file_path) print("目录部分:", directory) print("文件名部分:", filename)
输出:
目录部分: /home/user/documents
文件名部分: file1.txt
14. 重命名文件或目录
os.rename() 函数用于对文件或目录进行重命名操作。
例子:
import os original_name = "/home/user/documents/file1.txt" new_name = "/home/user/documents/file2.txt" os.rename(original_name, new_name) print(f"已将 {original_name} 重命名为 {new_name}")
执行上述代码后,file1.txt 文件将被重命名为 file2.txt。
15. 复制文件(需要借助 shutil 库)
虽然 os 库本身没有直接提供复制文件的功能,但可以结合 shutil 库来实现。这里先简单介绍下与 os 相关的部分,假设已经导入了 shutil 库。
例子:
import os import shutil source_file = "/home/user/documents/file2.txt" destination_file = "/home/user/documents/copy_file2.txt" shutil.copyfile(source_file, destination_file) print(f"已将 {source_file} 复制到 {destination_file}")
执行上述代码后,file2.txt 文件将被复制到 destination_file 位置,生成一个新的文件 copy_file2.txt。
16. 遍历目录树(包括子目录)
可以使用 os.walk() 函数来遍历一个目录及其所有子目录,它会返回一个生成器,每次迭代会返回一个三元组,包含当前目录、当前目录下的子目录列表和当前目录下的文件列表。
例子:
import os root_directory = "/home/user/documents" for root, dirs, files in os.walk(root_directory): print("当前目录:", root) print("子目录列表:", dirs) print("文件列表:", files) print("-" * 50)
执行上述代码后,会依次遍历 /home/user/documents 目录及其所有子目录,并输出每个目录的相关信息。
17. 判断路径是否为绝对路径
os.path.isabs() 函数用于判断一个路径是否为绝对路径,返回 True 如果是绝对路径,False 如果是相对路径。
例子:
import os path1 = "/home/user/documents/file1.txt" path2 = "documents/file1.txt" if os.path.isabs(path1): print(f"{path1} 是绝对路径") else: print(f"{path1} 是相对路径") if os.path.isabs(path2): print(f"{path2} 是绝对_path") else: print(f"{path2} 是相对_path")
根据实际情况,会输出相应的判断结果。
18. 获取当前操作系统名称
os.name 可以获取当前运行 Python 程序的操作系统名称,在 Windows 下返回 nt,在 Linux 和 macOS 下返回 posix。
例子:
import os operating_system = os.name print("当前操作系统:", operating_system)
根据你运行程序的操作系统,会输出相应的结果,如在 Windows 下输出 nt,在 Linux 下输出 posix。
19. 清除控制台屏幕(在某些操作系统下)
在 Windows 下,可以使用 os.system(‘cls’) 来清除控制台屏幕;在 Linux 和 macOS 下,可以使用 os.system(‘clear’)。
例子:
import os # 假设在Windows下运行 os.system('cls') # 假设在Linux或macOS下运行 os.system('clear')
注意:这种方式只是简单地调用系统命令来实现清除屏幕的功能,在一些复杂的环境下可能效果不佳或存在兼容性问题。
20. 查找文件或目录(在指定目录及子目录中)
可以使用 os.walk() 结合条件判断来查找指定的文件或目录在某个目录及其子目录中的位置。
例子:
import os root_directory = "/home/user/documents" target_file = "file1.txt" for root, dirs, files in os.walk(root_directory): if target_file in files: print(f"找到 {target_file} 在 {root} 目录下") break
执行上述代码后,如果 file1.txt 在 /home/user/documents 及它的子目录中存在,那么会输出其所在的目录位置。
到此这篇关于python中os库的具体使用的文章就介绍到这了,更多相关python os库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!