Python中的OS模块及实例——《跟老吕学Python编程》附录资料
Python中的OS模块及实例
在Python编程中,os
模块是一个非常基础且重要的模块,它提供了与操作系统交互的方法,允许我们执行诸如文件和目录操作、环境变量访问、进程管理等任务。os
模块提供了跨平台的方法,这意味着无论你在Windows、Linux还是Mac OS X上运行Python,这些方法的行为都是一致的。
下面,我们将通过几个实例来展示os
模块的一些常见用法:
1. 当前工作目录
我们可以使用os.getcwd()
来获取当前工作目录的完整路径。
import os
current_directory = os.getcwd()
print("当前工作目录是:", current_directory)
2. 列出目录内容
使用os.listdir()
函数可以列出指定目录中的所有文件和子目录。
# 导入操作系统模块
import os
# 获取所有文件和目录的列表
# 在根目录中
path = "/"
dir_list = os.listdir(path)
print("Files and directories in '", path, "' :")
# 列出目录内容
print(dir_list)
3. 创建和删除目录
使用os.mkdir()
可以创建一个新目录,而os.rmdir()
可以删除一个空目录。
import os
# 创建一个新目录
os.mkdir("new_directory")
# 删除一个目录(确保该目录为空)
os.rmdir("new_directory")
Python中的
os.remove()
方法用于移除或删除一个文件路径。这个方法不能移除或删除一个目录。如果指定的路径是一个目录,那么该方法将引发OSError
。
4. 更改当前工作目录
使用os.chdir()
可以更改当前工作目录。
import os
# 原始工作目录
original_dir = os.getcwd()
print(f"原始工作目录: {original_dir}")
# 更改工作目录到指定路径
new_dir = "/path/to/new/directory"
os.chdir(new_dir)
# 验证工作目录是否更改成功
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
# 在新的工作目录下创建文件
with open("example.txt", "w") as file:
file.write("这是一个示例文件。")
# 返回到原始工作目录
os.chdir(original_dir)
# 再次验证工作目录
final_dir = os.getcwd()
print(f"最终工作目录: {final_dir}")
5. 访问环境变量
os.environ
是一个字典对象,允许我们访问和修改环境变量。
import os
# 访问环境变量
path_variable = os.environ.get("PATH")
print("PATH环境变量的值是:", path_variable)
# 修改环境变量(谨慎使用,这会影响当前进程及其子进程)
os.environ["NEW_VARIABLE"] = "some_value"
6. 执行外部命令
os.system()
函数可以用来执行外部命令。
import os
os.system("ls -l") # 在Unix-like系统上列出当前目录内容
7. 文件和目录的路径操作
os.path
模块提供了很多用于处理文件和目录路径的函数。
import os
# 拼接路径
full_path = os.path.join("/path/to", "directory", "file.txt")
print("完整路径是:", full_path)
# 判断路径是否存在
if os.path.exists(full_path):
print("路径存在")
else:
print("路径不存在")
# 获取文件的基本名称和扩展名
filename = os.path.basename(full_path)
file_extension = os.path.splitext(full_path)[1]
print("文件名是:", filename)
print("文件扩展名是:", file_extension)
Python中的OS模块常用的函数
1. os.name
这个函数给出了导入的依赖于操作系统的模块的名称。目前已注册的名称有:posix
、nt
、os2
、ce
、java
和riscos
。
import os
print(os.name)
输出:
posix
注意:在不同的解释器上可能会有不同的输出,比如你在这里运行代码时,’posix’。
2. os.error
本模块中的所有函数在文件名和路径无效或不可访问,或其他参数类型正确,但不被操作系统接受的情况下引发OSError。os.error是内置OSError异常的一个别名。
import os
try:
# 如果文件不存在,
# 然后它会抛出一个 IOError
filename = 'GFG.txt'
f = open(filename, 'rU')
text = f.read()
f.close()
# 如果控制直接跳到这里
# 上述任何一行代码都会抛出 IOError。
except IOError:
# 显示(os.error) 将会出现 <class 'OSError'>
print('Problem reading: ' + filename)
# 在任何情况下,代码然后继续执行
# try/except之后的行
输出:
Problem reading: GFG.txt
3. os.popen()
这个方法打开一个通往或来自命令的管道。根据模式是’r’还是’w’,返回值可以是读或写。语法。
os.popen(command[, mode[, bufsize]])
参数mode和bufsize不是必要的参数,如果没有提供,mode将采用默认的’r’。
import os
fd = "GFG.txt"
# popen()类似于open()
file = open(fd, 'w')
file.write("Hello")
file.close()
file = open(fd, 'r')
text = file.read()
print(text)
# ppopen()提供了一个管道/网关并直接访问该文件
file = os.popen(fd, 'w')
file.write("Hello")
# 文件未关闭,显示在下一个功能中。
输出:
Hello
注意:popen()的输出不会被显示,会有直接的变化进入文件。
4. os.close()
关闭文件描述符fd。一个用open()打开的文件,只能用close()来关闭。但通过os.popen()打开的文件,可以用close()或os.close()关闭。如果我们试图用 os.close() 关闭一个用 open() 打开的文件,Python 会抛出 TypeError。
import os
fd = "GFG.txt"
file = open(fd, 'r')
text = file.read()
print(text)
os.close(file)
输出:
Traceback (most recent call last):
File "C:\Users\GFG\Desktop\GeeksForGeeksOSFile.py", line 6, in
os.close(file)
TypeError: an integer is required (got type _io.TextIOWrapper)
注意:同样的错误可能不会被抛出,由于不存在文件或权限特权。
5. os.rename()
一个文件old.txt可以被重命名为new.txt,使用函数os.rename()。只有当文件存在并且用户有足够的权限来改变文件时,文件的名称才会改变。
import os
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.rename(fd,'New.txt')
输出:
Traceback (most recent call last):
File "C:\Users\GFG\Desktop\ModuleOS\GeeksForGeeksOSFile.py", line 3, in
os.rename(fd,'New.txt')
FileNotFoundError: [WinError 2] The system cannot find the
file specified: 'GFG.txt' -> 'New.txt'
理解输出。一个文件名 “GFG.txt “存在,因此当第一次使用os.rename()时,该文件被重命名。第二次调用函数os.rename()时,文件 “New.txt “存在,而不是 “GFG.txt”,因此Python抛出FileNotFoundError。
6. os.remove()
使用Os模块,我们可以使用remove()方法在系统中删除一个文件。要删除一个文件,我们需要把文件的名称作为一个参数传给它。
import os #importing os module.
os.remove("file_name.txt") #removing the file.
操作系统模块在我们和操作系统之间提供了一个抽象层。当我们使用OS模块时,总是根据操作系统指定绝对路径,代码可以在任何操作系统上运行,但我们需要准确地改变路径。如果你试图删除一个不存在的文件,你会得到FileNotFoundError。
7. os.path.exists()
这个方法将通过传递文件名作为参数来检查一个文件是否存在。操作系统模块有一个名为PATH的子模块,通过它我们可以执行许多其他功能。
import os
#importing os module
result = os.path.exists("file_name") #giving the name of the file as a parameter.
print(result)
输出:
False
在上面的代码中,如果文件不存在,它将给出False的输出。如果文件存在,它将给我们输出True。
8. os.path.getsize()
在这个方法中,Python将给我们以字节为单位的文件大小。要使用这个方法,我们需要把文件的名称作为一个参数传给它。
import os #importing os module
size = os.path.getsize("filename")
print("Size of the file is", size," bytes.")
输出:
Size of the file is 192 bytes.
👨💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞
🔥精品付费专栏:(暂时免费,尽快订阅、收藏哦)🔥
《跟老吕学Python编程》
《跟老吕学Python编程·附录资料》
🌐前端:
《跟老吕学HTML》
《XHTML》
《CSS》
《JavaScript》
《Vue》
💻后端:
《跟老吕学C语言》
《C++》
《Java》
《R》
《Ruby》
《PHP》
《Go》
《C#》
《Swift》
《Python》
💾数据库:
《跟老吕学Oracle语言》
《MYSQL》
《SQL》
《PostgreSQL》
《MongoDB》