Python 目录管理
原文:https://www.geeksforgeeks.org/python-directory-management/
目录是在计算机上存储、组织和分离文件的一种方式。没有父目录的目录称为根目录。到达文件的路径称为路径。该路径包含目录名、由斜线和冒号分隔的文件夹名的组合,这给出了系统中文件的路径。
使用 Python 进行目录管理
Python 包含几个模块,这些模块有许多内置函数来操作和处理数据。Python 还提供了帮助我们与操作系统和文件交互的模块。这些类型的模块也可以用于目录管理。提供这些功能的模块如下所示:
- os 和 os.path
- filecmp
- 临时文件
- 舒蒂尔
os 和 os.path 模块
os 模块用于以各种方式处理文件和目录。它提供创建/重命名/删除目录的规定。这甚至允许知道当前的工作目录并将其更改为另一个。它还允许用户将文件从一个目录复制到另一个目录。用于目录管理的主要方法解释如下。
创建新目录:
- os.mkdir(name) 方法创建新目录。
- 新目录所需的名称作为参数传递。
- 默认情况下,它会在当前工作目录中创建新目录。
- 如果必须在其他地方创建新目录,那么必须指定路径,并且路径应该包含正斜杠而不是反斜杠。
Python 3
import os
# creates in current working directory
os.mkdir('new_dir')
# creates in D:\
os.mkdir('D:/new_dir')
获取当前工作目录(CWD):
- 可以使用 os.getcwd() 。
- 它返回一个字符串,表示当前工作目录的路径。
- 也可以使用 os.getcwdb() 但是它会返回一个表示当前工作目录的字节字符串。
- 这两种方法都不需要传递任何参数。
Python 3
import os
print("String format :", os.getcwd())
print("Byte string format :", os.getcwdb())
输出:
String format : /home/nikhil/Desktop/gfg
Byte string format : b'/home/nikhil/Desktop/gfg'
重命名目录:
- os.rename() 方法用于重命名目录。
- 传递的参数是 old_name 后跟 new_name。
- 如果传递了 new_name 的目录已经存在,那么在 Unix 和 Windows 的情况下都会引发 OSError。
- 如果一个文件已经以 new_name 存在,在 Unix 中不会出现错误,该目录将被重命名。但是在 Windows 中,重命名不会发生,并且会引发错误。
- OS . rename(' old _ name ',' dest_dir:/new_name') 方法的工作原理类似于 os.rename() ,但它将重命名的文件移动到指定的目标目录(dest_dir)。
例如,假设当前工作目录中有一个名为“file1.txt”的文件。现在给它重新命名:
Python 3
import os
os.rename('file1.txt','file1_renamed.txt')
如果需要重命名文件并将文件移动到其他目录,那么代码片段应该是:
Python 3
import os
os.renames('file1.txt', 'D:/file1_renamed.txt')
更改当前工作目录(CWD):
- 计算机系统中的每个进程都有一个与之相关联的目录,称为当前工作目录(CWD)。
- os.chdir() 方法用于更改。
- 传递的参数是希望移动到的所需目录的路径/名称。
例如,如果我们需要将 CWD 更改为 D:/中的 my_folder,则使用下面的代码片段。
Python 3
import os
print("Current directory :", os.getcwd())
# Changing directory
os.chdir('/home/nikhil/Desktop/')
print("Current directory :", os.getcwd())
输出:
Current directory : /home/nikhil/Desktop/gfg
Current directory : /home/nikhil/Desktop
列出目录中的文件
- 一个目录可能包含子目录和许多文件。要列出它们,请使用 os.listdir() 方法。
- 它要么不带参数,要么带一个参数。
- 如果没有传递参数,则列出 CWD 的文件和子目录。
- 如果需要列出除 CWD 以外的任何其他目录的文件,则该目录的名称/路径作为参数传递。
例如:列出 CWD 极客目录中的文件
Python 3
import os
print("The files in CWD are :",os.listdir(os.getcwd()))
输出:
CWD 的文件是:['站点文件夹','。目录',' proxy.txt ','诗 python.txt ','左栏','图片','欢迎来到 GeeksforGeeks!\ n 列表添加 Ne.txt ','废纸篓. desktop ',' gfg.py ','抱歉,您无法更新某些 tim.txt ',' gfgNikhil Aggarwal.png ',' 0001.jpg ',' gfg ',' gfgcerti.png ',' raju ',' images big']
删除目录
- os.rmdir() 方法用于删除/删除一个目录。
- 传递的参数是该目录的路径。
- 当且仅当目录为空时,它才会删除该目录,否则会引发 OSError。
例如,让我们考虑一个目录 K:/文件。现在要删除它,必须确保它是否为空,然后继续删除。
Python 3
import os
dir_li=os.listdir('k:/files')
if len(dir_li)==0:
print("Error!! Directory not empty!!")
else:
os.rmdir('k:/files')
要检查它是否是一个目录:
- 给定一个目录名或路径, os.path.isdir(path) 用于验证该路径是否为有效目录。
- 它只返回布尔值。如果给定路径是有效目录,则返回真,否则返回假。
Python 3
import os
# current working directory of
# GeeksforGeeks
cwd='/'
print(os.path.isdir(cwd))
# Some other directory
other='K:/'
print(os.path.isdir(other))
Output
True
False
要获取目录的大小:
- OS . path . getsize(path _ name)以字节为单位给出目录的大小。
- 如果将无效路径作为参数传递,则会引发 OSError。
Python 3
import os
print(os.path.getsize(os.getcwd()))
Output
4096
版权属于:月萌API www.moonapi.com,转载请注明出处