OS模组(Python内建)
说明 : os模组是一种与作业系统相关的模组,提供数十种与作业系统沟通的函式,常用於档案的复制、修改、查询等,使用频率相当高。
import os
print(os.system("notepad.exe")) #开启记事本
print(os.system("calc.exe")) #开启计算机
print(os.name) # 取得当前的使用平台,# Windows用'nt'表示,Linux用'posix'表示
print(os.getcwd()) # 取得当前的工作目录
接下来要先提关於相对路径和绝对路径
相对路径:是从当前路径开始的路径,是以档案位置为开始与其他档案的对应位置,会随着目录位置不同而改变。
绝对路径:是从根目录开始的路径,相当於详细地址,不会随着位置改变而不同。
「./」是代表目前所在目录
「../」是代表上一层目录,若目前已经是根目录则依然为目前所在目录
「/」在各个目录名称之间的分隔符号,如果放置在路径之前则代表根目录
以下以os.listdir()取得指定资料夹中所包含的文件及档案列表来举例说明:
print(os.listdir('C:/Users/User/Downloads/project_01')) # 绝对位置
print(os.listdir('./js')) # 相对位置,代表当层目录下所有档案列表
print(os.listdir('../project_01')) # 相对位置,代表上一层目录下所有档案列表
print(os.listdir('./js')),即是指os2.py是我当前使用的档案,以此档案为开始,
要找当层目录'js'所包含的文件及档案。
print(os.listdir('../project_01'))则是指以os2.py为开始,要找上一层'project_01'所包含的文件及档案。
建立path目录(只能建立一级目录,如'D:\AAA\BBB'),在AAA目录下建立BBB目录
path = 'D:/2.旧东家/test_os_一级目录'
print(os.mkdir(path))
建立多级目录(如'D:\AAA\BBB\CCC\DDD'),可以在D槽下建立AAA目录,
继续在AAA目录下建立BBB目录,在BBB目录下建立CCC目录,在CCC目录下建立DDD目录
path = 'C:/Users/User.DESKTOP-OMLCNUB/Desktop/test_os'
print(os.makedirs(path))
若只是想要查看特定的路径是否存在,不分档案或目录,则可使用 os.path.exists
fileName1 = '../../profile.js' #查询上上一层路径是否有profile.js
print(os.path.exists(fileName1))
判断path是否存在,存在返回True,不存在返回False,output: False
fileName2 = './profile.js' #查询当层路径是否有profile.js
print(os.path.exists(fileName2))
output: True
关於 底线底线file底线底线
从一个路径中提取档案路径,去除档案名称
print(os.path.dirname())
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop
取得档名的绝对路径
print(os.path.realpath())
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop\os02.py
虽然是所在的py文件的完整路径,但这个变量有时候返回相对路径,
有时候返回绝对路径,所以会使用用os.path.realpath()函数处理获得绝对路径
print(os.path.dirname(os.path.realpath()))
output: C:\Users\User.DESKTOP-OMLCNUB\Desktop
取得档案的绝对路径和档案名称,路径和名称分开
print(os.path.split(os.path.realpath()))
output: ('C:\Users\User.DESKTOP-OMLCNUB\Desktop', 'os02.py')
<<: 寝室的秘密授课(四):测试覆盖率 Test Coverage
在 昨天很多的教学後, 这次来个雷同的WindowsMenum的建立,直接上程序码吧! <!-...
为了让这个教学系列可以适合持续变化的社会变化,会这最後这篇预留更新扩展的资源列表,会不停时更新在这个...
今天要提到一些关於 GitHub Action 内撰写 YAML 一些技巧,环境变数 (Enviro...
因为一开始的目的之一是想要找一套兼容MySQL可尽量无痛转移的资料库,所以兼容程度是蛮重要的考量。官...
Syft 可以用来产生容器 (container image) 与档案系统 (file system...