❶ python的os库的使用
python os库有很多和操作系统相关的功能。
其实不仅仅如此,os库中还有很多和文件,路径,执行系统命令相关的。
下面是os模块常用的方法.
1.os.sep 可以取代操作系统特定的路径分割符
2.os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于linux/Unix用户,它是'posix'
3.os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径
4.os.getenv() 用来读取环境变量
5.os.putenv() 用来设置环境变量
6.os.listdir() 返回指定目录下的所有文件和目录名
7os.remove() 函数用来删除一个文件
8.os.system() 函数用来运行shell命令
9.os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
10.os.path.split() 函数返回一个路径的目录名和文件名
11.os.path.isfile() 检验给出的路径是一个文件
12os.path.isdir() 检验给出的路径是一个目录
13.os.path.existe() 函数用来检验给出的路径是否真地存在
14.os.listdir(dirname) 列出dirname下的目录和文件
15.os.getcwd() 获得当前工作目录
16.os.curdir 返回当前目录('.')
17.os.chdir(dirname) 改变工作目录到dirname
os.path都是和路径指定的文件,目录,和路径字符串有关系的函数
os.path.isdir(name) 判断name是不是一个目录,name不是目录就返回false
os.path.isfile(name) 判断name是不是一个文件,不存在name也返回false
os.path.exists(name) 判断是否存在文件或目录name
os.path.getsize(name) 获得文件大小,如果name是目录返回0L
os.path.abspath(name) 获得绝对路径
os.path.normpath(path) 规范path字符串形式
os.path.split(name) 分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext() 分离文件名与扩展名
os.path.join(path,name) 连接目录与文件名或目录
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
❷ 如何在Python中执行DOS命令
关于python调用cmd命令,主要介绍两种方式:
一、Python的OS模块
OS模块调用CMD命令有两种方式:os.system(),os.popen()。 都是用当前进程来调用。
1、os.system()
a、简单粗暴的执行cmd指令
b、返回结果为0表示执行成功,无法获取命令输出的内容,本在cmd输出的内容会直接在控制台输出。
c、当命令运行结束后接着往下面执行程序(同步阻塞式)。用法如:os.system("ipconfig")。
2、os.popen()
a、能获取DOS命令输出的内容。
b、os.popen()返回的是一个file对象,那么可以跟打开文件一样操作,r是以读的方式打开。
c、当命令运行结束后接着往下面执行程序(同步阻塞式)。
注意:os.popen() 方法用于从一个命令打开一个读写管道,在Unix,Windows中有效。
用法如:
with os.popen(r"adb devices","r")as f:
text = f.read()
print(text)# cmd输出结果
二、管道subprocess模块
a、在当前进程下产生子进程。
b、用wait()函数等待结果(异步非阻塞式)。
【方法1】
result = subprocess.check_output(r'adb devices') ## 命令执行的输出结果放到了result里
print(result)
【方法2】
process = subprocess.Popen(r'adb devices',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
command_output = process.stdout.read().decode('gbk')
print(command_output)
Notices:
有些命令行是异步执行的不会马上返回输出,所以有时候我们要先等这个命令行执行完毕才能从stdout读出来数据。这个时候要加上
process.wait()
我的GitHub
❸ python os模块怎么使用
常用方法:
1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'。
2. os.getcwd()——得到当前工作的目录。
3. os.listdir()——指定所有目录下所有的文件和目录名。
例:
❹ Python之OS模块操作有哪些这18个高频函数是重中之重,你会用
案例一:新建一个txt文件并向文件中写入数据。
代码与结果如上图所示。
案例:os.rename('kitty1.txt',''kitty2.txt')
2.1 输出结果:将kitty1文件改为kitty2
2.2 文件解析说明:文件重命名,将test1文件改为test2文件。
案例:os.remove('kitty2.txt')
3.1 输出结果:kitty2.txt文件被删除
3.2 解析说明:删除文件。
案例:os.mkdir('kitty')
4.1 输出结果:创建一个文件夹名字为kitty
4.2 解析说明:创建文件夹。
4.3 解析说明:list.pop()就直接从list中的最末尾处删除一个元素。
案例:os.rmdir('test')
5.1 输出结果:删除一个文件夹
5.3 解析说明:删除文件夹.
解析说明:可以取代操作系统特定的路径分割符
案例一:print(os.getcwd())
输出结果:D:PythonProjectPython编程基础
解析说明:相当于linux下的pwd,获取当前目录。
案例一:os.chdir(os.getcwd()+os.sep+'kitty')
解析说明:进入到某个目录下。
解析说明:相当于linux下的ls,显示当前目录下的文件。
解析说明:创建一个aa文件夹,再在里面创建一个bb文件夹。
解析说明:删除aa文件夹和aa文件夹中的bb文件夹。
解析说明:判断是否是个文件。
解析说明:判断是否是个文件夹。
解析说明:判断文件是否存在。
解析说明:获取文件大小。
解析说明:返回文件的绝对路径。
解析说明:获取文件的文件名,注意参数需要传入绝对路径。
解析说明:获取文件的所在目录,注意参数需要传入绝对路径。
❺ python os.system命令求助
处理字符串的时候,反斜杠(‘\’)是转义符。比如\n是换行符,\t是制表符,\r是回车符等等……
而如果在一个字符串中想表示反斜杠本身,就需要先用转义符转义,就像这样——'\\'(没有外面的引号)。你的代码改成这样:
os.system('zip -qr D:\\Development\\Python\\Temp\\20110825212607.zip D:\\Development\\Python\\HelloWorld')
或者还有一种方法,就是字符串之前加上一个字母r,表示该字符串是原始字符串——此时的转义符就无效了,那么反斜杠就是它本来的意思:
os.system(r'zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld')
另外,说句题外话:
os.system启动一个进程后,会等待这个进程退出,再继续执行下面的代码
如果你想启动进程后,你的python程序就继续往下跑,不等待被启动的那个进程结束
可以使用subprocess模块下的Popen函数:
import subprocess
subprocess.Popen(r'zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld')
❻ python 中os.system()的用法
os模块中的system()函数可以方便地运行其他程序或者脚本。
语法如下:os.system(command)
其参数含义如下所示:
command 要执行的命令,相当于在Windows的cmd窗口中输入的命令。如果要向程序或者脚本传递参数,可以使用空格分隔程序及多个参数。

(6)python用os命令拍照扩展阅读
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件,通常是.pyc格式。
除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。
❼ Python包之OS
参考: https://docs.python.org/3/library/os.html
Python中对OS模块的定位是:提供了使用操作系统的工具接口。
如果你想读写文件,可以参考open();
如果你想操作文件路径,参考os.path模块;
如果你想在命令行读取所有文件的所有行,参考fileinput模块;
如果你想创建临时文件或目录,参考tempfile模块;
如果你想更高级的文件和路径处理,参考shutil模块;
内置的OSError异常类型,比如在使用os模块中的函数接口时,在参数中提供了无效的文件或路径,就回报错os.error。
该变量返回当前操作系统的类型,当前只注册了3个值:分别是posix , nt , java, 对应linux/windows/java虚拟机。
在Python中,文件名,命令行参数和环境变量都是用字符串类型来表示。
接下来的这些函数和数据提供了当前进程和用户的信息状态和操作接口。
返回进程控制终端的文件名,适用于Unix系统。
返回字符串到环境变量的映射。
改变当前工作目录到指定的路径,path为要切换到的新路径。
通过文件描述符改变当前工作目录。
文件描述符是内核为了高效管理已经被打开的文件所创建的索引,
进程通过文件描述符来访问文件。 在程序刚启动的时候默认有3个文件描述符:0(标准输入),1(标准输出),2(标准错误),系统默认提供了 0~2的文件描述符,之后的 当我们进行 open,create等操作的时候 自动添加进表
所以int creat(const char * ,mode_t)返回的文件int 就是你所进行操作的文件的唯一身份标示,
然后你只要拿着这个ID 然后告诉系统给我找xx, write(int fd,char *buf,int lenght) 通过fd得到准确文件 然后写入。
当我们新建creat,打开open 之后,得到的fd 是从3开始的 因为前面的三个被系统占了在OS X系统下测试 文件描述符表 自增,当释放close之后,fd变成-1,如果再继续新建 则填补之前的空缺。
返回当前工作目录。
把字符串类型的文件名翻译成bytes类型的文件名;os.fsdecode()实现相反的功能。
返回路径的文件系统表示。
如果环境变量中存在key,返回环境变量key的值,否则返回default的值。
设置环境变量key的值为value。
使用当前uid/gid检测对路径path是否有访问权限。其中,path为要检测是否有权限的路径,mode为权限类别,值可以为os.F_OK、os.R_OK、os.W_OK、os.X_OK中的一个或多个;
切换当前的工作路径为path指定的路径。
设置路径path的标记为flags,flags为数字标记,多个flags可以使用or组合。flags可以为以下值或以下值的组合:
更改文件或目录的权限。
path -- 文件名路径或目录路径
mode -- 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, 写权限表示可以获取文件并且可以修改内容,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。
更改路径的拥有者和group id为uid和gid。如果不修改可以设置为-1,并且需要超级用户权限来执行权限修改操作。
path -- 设置权限的文件路径
uid -- 所属用户ID
gid -- 所属用户组ID
更改当前进程的根目录为path。
返回当前工作目录。
返回path目录路径下的文件列表,列表没有固定的顺序。
创建目录path。如果目录已经存在,会抛出异常FileExistsError。
递归的目录创建,递归的意思是创建所有到达叶子目录的中间目录。
从原始设备号(通常是stat中的st_dev或st_rdev)中提取设备major号码。
从原始设备号(通常是stat中的st_dev或st_rdev)中提取设备minor号码。
根据设备的major号码和minor号码组成原始设备号。
删除文件路径path。如果path指向的是目录路径,会抛出异常IsADirectoryError。如果要删除目录,使用rmdir。
递归的删除目录。与rmdir功能相似,不同的是,如果叶子目录被删除之后,removedirs会连续的删除每一层上级目录,直到抛出异常(异常会被忽略,因为异常通常意味着上层目录为非空目录)。
重命名文件或路径src为dst,如果dst已经存在,会抛出异常。
递归的重命名文件或目录。功能与rename类似,不同在于,renames首先创建new路径(即重命名之后的路径)的中间路径,然后创建完整new路径,最后,会使用removedirs删除掉old路径(实际上删除的是old路径与new路径不重合的部分)。
重命名文件或路径src为dst。如果dst是目录,抛出异常OSError。如果dst是文件且已经存在,且用户具有权限,dst会被替换掉。
删除path目录。如果path不存在,或者path非空,会抛出异常FileNotFoundError或OSError。如果要删除整个目录树,可以使用shutil.rmtree()。
返回path的绝对路径,效果等同于使用normpath:normpath(join(os.getcwd(), path))。
返回路径path的文件名,也就是对path调用os.path.split函数返回的元组的第二个元素。
paths为一个序列类型,其中每个元素表示一个路径,函数返回结果为每个元素所表示的路径的最长公共子路径。如果paths为空,或者paths同时包含绝对路径和相对路径,或者paths同时包含不同驱动类型的路径(比如Linux系统的路径和Windows系统的路径),则抛出异常ValueError。
list中的每个元素表示一个路径,函数返回每个路径的最长的共有路径前缀,因为计算方式为逐个字符进行比较,所以可能返回的结果并非有效的路径,如果要返回有效路径,可以使用commonpath。
返回path路径的目录部分,也就是对path调用os.path.split函数返回的元组的第一个元素。
如果path指向的路径已存在,则返回True,否则返回False。
在Unix和Windows系统中,返回path路径中的~被替换成用户的home目录之后的结果。
path路径中的 {name}被环境变量中对应名称的值替代。
返回最后一次访问path的时间,返回值的格式为一个float类型的数值,表示距离epoch基准时间1970-01-01 00:00:00的秒数。如果path表示的路径不存在或者没有权限,抛出异常OSError。
返回最后一次修改path的时间,返回值的格式为一个float类型的数值,表示距离epoch基准时间1970-01-01 00:00:00的秒数。如果path表示的路径不存在或者没有权限,抛出异常OSError。
返回path表示的文件或路径的大小,以byte字节为单位。如果path表示的路径不存在或者没有权限,抛出异常OSError。
如果path是绝对路径,返回True,否则返回False。
如果path表示的是已存在的文件路径,返回True。
如果path表示的是已存在的目录,返回True。
如果path表示的是链接,返回True。
判断path是否为挂载点。
连接一个或多个路径,path和多个*paths的连接会使用路径分隔符。
对path的字母大小写进行normalize。在Windows系统中,path中的所有字母都转成小写,并且把正斜杠转成反斜杠。在其他操作系统中,返回path本身。
对path进行normalize,删除多余的路径分隔符。
split the path into a pair (head, tail),其中tail是path中最后的部分,并且永远不会含有斜杠,head是除了tail之外的部分。如果path以斜杠结尾,tail为空;如果path中不包含斜杠,head为空;如果path为空,head和tail都是空。
❽ python os.system、os.popen、subprocess.Popen的区别
1、使用os.system("cmd")
这是最简单的一种方法,其执行过程中会输出显示cmd命令执行的信息。
例如:print os.system("mkdir test") >>>输出:0
可以看到结果打印出0,表示命令执行成功;否则表示失败(再次执行该命令,输出:子目录或文件 test 已经存在。1)。
2、使用os.popen("cmd")
通过os.popen()返回的是 file read 的对象,对其进行读取read()操作可以看到执行的输出
例如:print os.popen("adb shell ls /sdcard/ | findstr aa.png").read() >>> 输出:aa.png(若aa.png存在,否则输出为空)
3、subprocess.Popen("cmd")
subprocess模块被推荐用来替换一些老的模块和函数,如:os.system、os.spawn*、os.popen*等
subprocess模块目的是 启动一个新的进程并与之通信 ,最常用是定义类Popen,使用Popen可以创建进程,并与进程进行复杂的交互。其函数原型为:
classsubprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
Popen非常强大,支持多种参数和模式,通过其构造函数可以看到支持很多参数。但Popen函数存在缺陷在于, 它是一个阻塞的方法 ,如果运行cmd命令时产生内容非常多,函数就容易阻塞。另一点, Popen方法也不会打印出cmd的执行信息 。
以下罗列常用到的参数:
args :这个参数必须是 字符串 或者是一个由 字符串成员的列表 。其中如果是一个字符串行表的话,那第一个成员为要运行的程序的路径以及程序名称;从第二个成员开始到最后一个成员为运行这个程序需要输入的参数。这与popen中是一样的。
bufsize: 一般使用比较少,略过。
executable: 指定要运行的程序,这个一般很少用到,因为要指定运行的程序在args中已经指定了。 stdin,stdout ,stderr: 分别代表程序的标准输入、标准输出、标准错误处理。可以选择的值有 PIPE , 已经存在的打开的文件对象 和 NONE 。若stdout是文件对象的话,要确保文件对象是处于打开状态。
shell:shell参数根据要执行的命令情况来定,如果将参数shell设为True,executable将指定程序使用的shell。在windows平台下,默认的shell由COMSPEC环境变量来指定。
❾ Python系统模块sys和os使用(一)
sys 与 os 都是大型的模块,提供了基础的系统接口,我们先简单看一下它们各有什么基础功能
可见这两个模块的属性列表都是非常长的,以下是一些基础操作
可以看出split与join是一对功能互异的方法
除此之外,我们也可以使用字符串的 split 以及 join 方法简单类似实现,例如
注意 os 模块下的 os.path.normpath 也很好用,可以用来规范一个路径,用法如下
os.popen(cmd, mode, buffering)
首次修改与 2019/3/22