Python中的OS模块及实例——《跟老吕学Python编程》附录资料

本文介绍了Python中的OS模块,包括获取当前工作目录、列出目录内容、创建和删除目录、更改工作目录、访问环境变量、执行外部命令等功能,并列举了os.name、os.error、os.popen()等常用函数的用法和示例。
摘要由CSDN通过智能技术生成

Python安装和使用Rich包——《跟老吕学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)

Python中的OS模块及实例——《跟老吕学Python编程》附录资料

2. 列出目录内容


使用os.listdir()函数可以列出指定目录中的所有文件和子目录。

# 导入操作系统模块
import os

# 获取所有文件和目录的列表
# 在根目录中
path = "/"
dir_list = os.listdir(path)

print("Files and directories in '", path, "' :")

# 列出目录内容
print(dir_list)

Python中的OS模块及实例——《跟老吕学Python编程》附录资料


3. 创建和删除目录


使用os.mkdir()可以创建一个新目录,而os.rmdir()可以删除一个空目录。

import os

# 创建一个新目录
os.mkdir("new_directory")

# 删除一个目录(确保该目录为空)
os.rmdir("new_directory")

Python中的OS模块及实例——《跟老吕学Python编程》附录资料

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}")

Python中的OS模块及实例——《跟老吕学Python编程》附录资料


5. 访问环境变量


os.environ是一个字典对象,允许我们访问和修改环境变量。

import os

# 访问环境变量
path_variable = os.environ.get("PATH")
print("PATH环境变量的值是:", path_variable)

# 修改环境变量(谨慎使用,这会影响当前进程及其子进程)
os.environ["NEW_VARIABLE"] = "some_value"

Python中的OS模块及实例——《跟老吕学Python编程》附录资料

6. 执行外部命令


os.system()函数可以用来执行外部命令。

import os
os.system("ls -l")  # 在Unix-like系统上列出当前目录内容

Python中的OS模块及实例——《跟老吕学Python编程》附录资料


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模块及实例——《跟老吕学Python编程》附录资料



Python中的OS模块常用的函数


1. os.name


这个函数给出了导入的依赖于操作系统的模块的名称。目前已注册的名称有:posixntos2cejavariscos

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》


  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python老吕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值