Python:写剧本常用模块OS普通用法

Python:写剧本常用模块OS普通用法

搜集了少许对于OS库的用法,整治归结一下,简单运用

import os

# 体例操纵

print(os.sep) # 获得暂时体例的路途分割符

print(os.name) # 获得暂时运用的处事平台

print(os.getenv('PATH')) # 获得名为 PATH 的情况变量

print(os.getcwd()) # 获得暂时的路途

print(os.environ['PATH']) # 不妨归来情况关系的消息 不传参时,以字典的办法归来一切情况变量

# 目次操纵 - 增窜改查

dir = "/opt/"

listdir_opt = os.listdir(dir) # 归来指定目次下的一切文献何目次名

print(listdir_opt)

os.mkdir("/opt/os-make/") # 创造一个目次,只创造一个目次文献

os.mknod("/root/python-test.txt") # 创造一个文献

os.rmdir("/opt/ooo/") # 简略一个空目次,若目次中有文献则没辙简略

os.remove("/tmp/test.txt") # 用来简略文献,假如目次,则抛出 IsDirectoryError 特殊

os.makedirs("/opt/os-make-again/os-make-again-again") # 不妨天生多层递归目次,即使目次十足生存,则创造目次波折

os.removedirs() # 从最部下目次发端,逐级简略指定路途,遇到非空目次即遏止

os.chdir("/tmp/") # 变换暂时目次,到指定目次

os.rename("/opt/ooo/","/opt/AAA/") # 重命花样录名大概文献名。重定名后的文献已生存,则重定名波折。

"""

os.rename()因变量的效率是将文献或路途重定名,普遍挪用方法为os.rename(src, dst),行将src指向的文献或路途重定名为dst指定的称呼。

提防,即使指定的目的路途在其余目次下,该因变量还可实行文献或路途的“剪切并粘贴”功效。但不管径直原地重定名仍旧“剪切粘贴”,中央路途都必需要生存,要不就会抛出FileNotFoundError特殊。即使目的路途已生存,Windows 下会抛出FileExistsError特殊;Linux 下,即使目的路途为空且用户权力承诺,则会寂静掩盖原路途,要不抛出OSError特殊,

和上两个因变量一律,该因变量也有对应的递归本子os.renames(),不妨创造缺点和失误的中央路途。

提防,这两种情景下,即使因变量实行胜利,城市挪用os.removedir()因变量来递归简略源路途的最部下目次。

"""

# 确定

if os.path.exists("/root"):

print("/root 目次生存!")

if os.path.isfile("/root"):

print("/root 文献生存!")

if os.path.isdir("/etc"):

print("/etc 目次生存!")

if os.path.isabs("/etc"):

print("/etc 是一致路途!")

# path模块

"""

os.path中的因变量基础上是简单的字符串操纵。换句话说,传入该模块因变量的参数以至不须要是一个灵验路途,该模块也不会试图考察这个路途,而只是是依照“路途”的通用方法对字符串举行处置。

"""

path = "/etc/passwd"

filename = os.path.basename(path) # 归来文献名,即使是目次则为空 本质上是传入路途结果一个分割符之后的子字符串,也即是说,即使最部下目次之后再有一个分割符,获得的就会是一个空字符串

filedir = os.path.dirname(path) # 归来的是结果一个分割符前的所有字符串

filesplit = os.path.split(path) # 将传入路途以结果一个分割符为界,分红两个字符串,并打包成元组的情势归来

"""

一致的

os.path.splitext("ooo.txt")

('ooo', '.txt')

"""

filesize = os.path.getsize(path) # 获得文献的巨细 十分于 ls -l 单元为bytes

fileAbsPath = os.path.abspath(path) # 获得文献的一致路途

filejoin = os.path.join(path,"test.txt") # 拼接新的路途

"""

即使传入路途中生存一个“一致路途”方法的字符串,且这个字符串不是因变量的第一个参数,那么其余在这个参数之前的一切参数城市被抛弃,余下的参数再举行拉拢。更精确地说,惟有结果一个“一致路途”及其之后的参数才会展现在归来截止中。

例子如次:

os.path.join("just", "do", "/opt/", "it")

截止: /opt/it

os.path.join("just", "do", "/opt/", "python", "dot", "/root", "com")

截止:/root/com

"""

print(filename+"\n"+filedir+"\n"+str(filesize)+"\n"+fileAbsPath+"\n"+filejoin+"\n")

之上模块和因变量的用法仍旧做了少许证明,领会起来也不难,底下再引见一个因变量os.walk()

import os

for item in os.walk("/opt/test-walk/"):

print(item)

输入截止

('/opt/test-walk/', ['a', 'b', 'c'], [])

('/opt/test-walk/a', [], ['a.txt'])

('/opt/test-walk/b', ['b2'], [])

('/opt/test-walk/b/b2', [], ['b.txt'])

('/opt/test-walk/c', [], [])

目次构造

[root@open-1 python_scripts]# tree /opt/test-walk/

/opt/test-walk/

├── a

│ └── a.txt

├── b

│ └── b2

│ └── b.txt

└── c

4 directories, 2 files

由上头的截止不妨大概领会os.walk()因变量的效率:这个因变量须要传入一个路途动作参数,因变量的效率是在该路途为根节点的目次树中流走,对树中的每个目次天生一个由(dirpath, dirnames, filenames)三项构成的三元组。个中,dirpath是一个引导这个目次路途的字符串,dirnames是一个dirpath下子目次名(取消 . 和 ..)构成的列表,filenames则是由dirpath下一切非目次的文献名构成的列表。大略来说,即是把目的路途下的一切目次和文献都列出来,贯串tree吩咐的截止,就更好领会这个因变量的效率了.

分享到 :
相关推荐

Leave a Reply

Your email address will not be published. Required fields are marked *