python面试的100题(2)
def print_directory_contents(sPath): """ 这个函数接收文件夹的名称作为输入参数 返回该文件夹中文件的路径 以及其包含文件夹中文件的路径 """
给出的结果如下:
def print_directory_contents(sPath): import os for s_child in os.listdir(s_path): s_child_path = os.path.join(s_path, s_child) if os.path.isdir(s_child_path): print_directory_contents(s_child_path) else: print(s_child_path)
os 模块在运维工作中是很常用的一个模块。通过os模块调用系统命令。os模块可以跨平台使用。
在 import os
的时候,建议使用import os
而非from os import *
。这样可以避免os.open()
不会覆盖内置函数open()
.
os.name()
import os print(os.name)
结果为:nt
os.system()
行系统命令的模块,返回命令执行的状态码,开启一个子shell执行命令
import os
cmd = 'ifconfig'
retval = os.system(cmd)
print(retval)
# 结果为 0
# 表示命令执行成功,否则为失败
os.popen()
popen
也是去执行一个命令,不过相比system(cmd),os.popen(command [, mode='r' [, bufsize]]),参数更多,而且是开启一个管道去执行。
- cmd - 执行的命令
- mode - 模式权限可以是'r'(默认)或'w'
- buffering - 0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
import os cmd = 'mkdir nwdir' a = os.popen(cmd) print(a) print(type(a))
结果为:
<os._wrap_close object at 0x000002177BF61F98>
<class 'os._wrap_close'>
os.listdir(path)
打印指定目录的文件,返回一个列表
import os
a = os.listdir('/tmp')
print(a)
os.getcwd()
返回当前绝对路径,返回类型为str
import os a = os.getcwd() print(a)
os.chd
ir(path)
改变当前路径
import os print(os.getcwd()) os.chdir(/tmp/aaa) print(os.getcwd())
os.mkdir()
mkdir(path [, mode=0755])
默认权限是0755
如果目录已存在,会异常OSError
os.remove(path)
删除文件,只能删除文件
os.rmdir(path)
删除目录,只能删除目录
os.path
该模块主要是针对路径的操作。
os.path.abspath(path)
返回绝对路径,主要有引号
import os print(os.path.abspath('.'))
结果:D:\学习\python\面试
os.path.basename(path)
返回文件名,类似linux
中的basename
命令
import os print(os.path.basename('D:\Python\面试'))
os.path.dirname(path)
返回文件路径,不包含文件名,类似linux
中的dirname
命令
import os
print(os.path.dirname('D:\Python\面试'))
结果:D:\Python
os.path.exists(path)
判断路径是否存在,存在返回True
,不存在返回False
a = 'D:\Python\面试' print(os.path.exists(a))
os.path.join(path1,path2)
把 path1、path2文件或目录合并成一个路径
参考地址:https://www.cnblogs.com/pingqiang/p/7817983.html