Python 中的操作系统模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用依赖于操作系统的功能的可移植方式。os和os. path模块包括许多与文件系统交互的函数。
Python-OS 模块函数
我们将讨论 Python os 模块的一些重要功能:
- 处理当前工作目录
- 创建目录使用
- Python 列出文件和目录
- 使用 Python 删除目录或文件
处理当前工作目录
将当前工作目录(CWD)视为 Python 正在运行的文件夹。每当文件仅通过名称调用时,Python 假定它在 CWD 中启动,这意味着只有当文件在 Python 的 CWD 中时,仅名称引用才会成功。
获取当前工作目录
使用 os. getcwd()来获取当前工作目录的位置。
import os
cwd = os.getcwd()
print("Current working directory:", cwd)
更改当前工作目录
要更改当前工作目录(CWD)os. chdir()方法。此方法将 CWD 更改为指定路径。它只需要一个参数作为新的目录路径。
以下代码检查并显示当前工作目录(CWD)两次:使用 os. chdir('…/')将目录向上更改一级之前和之后。它提供了一个如何在 Python 中使用当前工作目录的简单示例。
import os
def current_path(): print("Current working directory before") print(os.getcwd()) print()
current_path()
os.chdir('../')
current_path()
创建目录
通过在 Python 中使用 os. mkdir()方法,用于创建具有指定数字模式的名为 path 的目录。如果要创建的目录已经存在,则此方法会引发 FileExistsError。
import os
directory = "test1"
parent_dir = "D:/Pycharm projects/"
path = os.path.join(parent_dir, directory)os.mkdir(path)
print("Directory '% s' created" % directory)
directory = "test2"
parent_dir = "D:/Pycharm projects"
mode = 0o666
path = os.path.join(parent_dir, directory)
os.mkdir(path, mode)
print("Directory '% s' created" % directory)
- 第一个目录是使用 os. mkdir()方法创建的,不指定模式。
- 第二个目录使用相同的方法创建,但提供了特定模式(0o666),该模式授予读写权限。
Python 中的 os. makedirs()方法用于递归创建目录。这意味着在制作叶子目录时,如果缺少任何中级目录,os.makedirs()方法将全部创建。
以下代码在不同的父目录中创建两个目录,“Nikhil” 和 “c”。它使用 os. makedrs 函数来确保在父目录不存在时创建它们。
import os
directory = "Nikhil"
parent_dir = "D:/Pycharm projects/test/Authors"
path = os.path.join(parent_dir, directory)
os.makedirs(path)
print("Directory '% s' created" % directory)
directory = "c"
parent_dir = "D:/Pycharm projects/test/a/b"
mode = 0o666
path = os.path.join(parent_dir, directory)
os.makedirs(path, mode)
print("Directory '% s' created" % directory)
列出文件和目录
Python 中有 os. listdir()方法用于获取指定目录下所有文件和目录的列表。如果我们没有指定任何目录,那么将返回当前工作目录下的文件和目录列表。
import os
path = "/"
dir_list = os.listdir(path)
print("Files and directories in '", path, "' :")
print(dir_list) Files and directories in ' / ' :
['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',
'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']
删除目录或文件
Python 中的 os. remove()方法用于删除或删除文件路径。此方法不能删除或删除目录。如果指定的路径是目录,则该方法将引发 OSError。
import os
file = 'file1.txt'
location = "D:/Pycharm projects/test/Authors/Nikhil/"
path = os.path.join(location, file)
os.remove(path)
Python 中的 os. rmdir()方法用于删除或删除空目录。如果指定的路径不是空目录,则会引发 OSError。
import os
directory = "test"
parent = "D:/Pycharm projects/"
path = os.path.join(parent, directory)
os.rmdir(path)
常用函数和属性
os.name
os.name给出导入的操作系统相关模块的名称。目前已注册以下名称:
'posx'、'nt'、'os2'、'ce'、'java' 和 'riscos'。
import os
print(os.name)posix
os.error
以下代码读取名为 “test. txt” 的文件的内容。它使用 “try… 除外” 块来处理潜在的错误,特别是如果读取文件时出现问题可能会发生的 “IOError”。
import os
try:filename = 'test.txt'f = open(filename, 'rU')text = f.read()f.close()
except IOError:print('Problem reading: ' + filename)Problem reading: test.txt
os.rename()
可以使用函数 os. rename()将文件 old.txt 重命名为 new.txt。仅当文件存在并且用户具有足够的权限来更改文件时,文件名才会更改。
import os
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.path.exists()
方法将通过传入文件名作为参数来检查文件是否存在。操作系统模块有一个名为 PATH 的子模块,通过它我们可以执行更多功能。
import os
#importing os moduleresult = os.path.exists("file_name") #giving the name of the file as a parameter.print(result)
os.path.getsize()
在 os. path.getsize()函数中,python 会以字节为单位给我们文件的大小。要使用此方法,我们需要将文件名作为参数传递。
import os #importing os module
size = os.path.getsize("filename")
print("Size of the file is", size," bytes.")