一学就废|Python基础碎片,OS模块

Python 中的操作系统模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用依赖于操作系统的功能的可移植方式。osos. path模块包括许多与文件系统交互的函数。

Python-OS 模块函数

我们将讨论 Python os 模块的一些重要功能:

  • 处理当前工作目录
  • 创建目录使用
  • Python 列出文件和目录
  • 使用 Python 删除目录或文件

处理当前工作目录

将当前工作目录(CWD)视为 Python 正在运行的文件夹。每当文件仅通过名称调用时,Python 假定它在 CWD 中启动,这意味着只有当文件在 Python 的 CWD 中时,仅名称引用才会成功。

获取当前工作目录

使用 os. getcwd()来获取当前工作目录的位置。

python 复制代码
import os 
cwd = os.getcwd() 
print("Current working directory:", cwd) 
更改当前工作目录

要更改当前工作目录(CWD)os. chdir()方法。此方法将 CWD 更改为指定路径。它只需要一个参数作为新的目录路径。

以下代码检查并显示当前工作目录(CWD)两次:使用 os. chdir('.../')将目录向上更改一级之前和之后。它提供了一个如何在 Python 中使用当前工作目录的简单示例。

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。

python 复制代码
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 函数来确保在父目录不存在时创建它们。

python 复制代码
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()方法用于获取指定目录下所有文件和目录的列表。如果我们没有指定任何目录,那么将返回当前工作目录下的文件和目录列表。

python 复制代码
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。

python 复制代码
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。

python 复制代码
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'。

python 复制代码
import os
print(os.name)

posix
os.error

以下代码读取名为 "test. txt" 的文件的内容。它使用 "try... 除外" 块来处理潜在的错误,特别是如果读取文件时出现问题可能会发生的 "IOError"。

python 复制代码
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。仅当文件存在并且用户具有足够的权限来更改文件时,文件名才会更改。

python 复制代码
import os
fd = "GFG.txt"
os.rename(fd,'New.txt')
os.path.exists()

方法将通过传入文件名作为参数来检查文件是否存在。操作系统模块有一个名为 PATH 的子模块,通过它我们可以执行更多功能。

python 复制代码
import os 
#importing os module

result = os.path.exists("file_name") #giving the name of the file as a parameter.

print(result)
os.path.getsize()

在 os. path.getsize()函数中,python 会以字节为单位给我们文件的大小。要使用此方法,我们需要将文件名作为参数传递。

python 复制代码
import os #importing os module
size = os.path.getsize("filename")
print("Size of the file is", size," bytes.")
相关推荐
专注VB编程开发20年41 分钟前
c#有什么显示矢量图SVG的控件VB.NET-svg转透明PNG图像
开发语言·c#·.net·svg·矢量图
蹦蹦跳跳真可爱5891 小时前
Python----Python基础(字符串,列表,元组,字典,集合的总结)
开发语言·python
Ma_si1 小时前
Python脚本自动发送电子邮件
python
元_汐1 小时前
【Python通过UDP协议传输视频数据】(界面识别)
开发语言·网络·python·网络协议·tcp/ip·udp
多多*2 小时前
线程池相关 FutureTask介绍 处理阻塞 Future改进->CompletableFuture
java·开发语言·后端·python·spring
siy23332 小时前
[c语言日寄]c语言也有“回”字的多种写法——整数交换的三种方式
c语言·开发语言·笔记·学习·算法
Quantum&Coder3 小时前
Swift语言的软件工程
开发语言·后端·golang
闲人编程4 小时前
PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析
python·算法·pid·路径规划·微分控制·积分控制·比例控制
CyberScriptor4 小时前
CSS语言的语法糖
开发语言·后端·golang