python中os和sys模块的区别与常用方法总结

作者&投稿:策房 (若有异议请与网页底部的电邮联系)
python os和sys模块的区别~

os与sys模块的官方解释如下:

os: This module provides a portable way of using operating system dependent functionality.
这个模块提供了一种方便的使用操作系统函数的方法。
sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.
这个模块可供访问由解释器使用或维护的变量和与解释器进行交互的函数。
总结就是,os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。
os 常用方法
os.remove(‘path/filename’) 删除文件
os.rename(oldname, newname) 重命名文件
os.walk() 生成目录树下的所有文件名
os.chdir('dirname') 改变目录
os.mkdir/makedirs('dirname')创建目录/多层目录
os.rmdir/removedirs('dirname') 删除目录/多层目录
os.listdir('dirname') 列出指定目录的文件
os.getcwd() 取得当前工作目录
os.chmod() 改变目录权限
os.path.basename(‘path/filename’) 去掉目录路径,返回文件名
os.path.dirname(‘path/filename’) 去掉文件名,返回目录路径
os.path.join(path1[,path2[,...]]) 将分离的各部分组合成一个路径名
os.path.split('path') 返回( dirname(), basename())元组
os.path.splitext() 返回 (filename, extension) 元组
os.path.getatime\ctime\mtime 分别返回最近访问、创建、修改时间
os.path.getsize() 返回文件大小
os.path.exists() 是否存在
os.path.isabs() 是否为绝对路径
os.path.isdir() 是否为目录
os.path.isfile() 是否为文件
sys 常用方法
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.modules 返回系统导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平台独立的python文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
sys.copyright 记录python版权相关的东西
sys.api_version 解释器的C的API版本
sys.stdin,sys.stdout,sys.stderr
stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
我们常用print和raw_input来进行输入和打印,那么print 和 raw_input是如何与标准输入/输出流建立关系的呢?
其实Python程序的标准输入/输出/出错流定义在sys模块中,分别 为: sys.stdin,sys.stdout, sys.stderr
下列的程序也可以用来输入和输出是一样的:
import sys

sys.stdout.write('HelloWorld!')

print 'Please enter yourname:',
name=sys.stdin.readline()[:-1]
print 'Hi, %s!' % name

那么sys.stdin, sys.stdout, stderr到底是什么呢?我们在Python运行环境中输入以下代码:
import sys
for f in (sys.stdin,sys.stdout, sys.stderr): print f
输出为:
', mode 'r' at 892210>
', mode 'w' at 892270>
', mode 'w at 8922d0>

由此可以看出stdin, stdout, stderr在Python中无非都是文件属性的对象,他们在Python启动时自动与Shell 环境中的标准输入,输出,出错关联。
而Python程序的在Shell中的I/O重定向与本文开始时举的DOS命令的重定向完全相同,其实这种重定向是由Shell来提供的,与Python 本身并无关系。那么我们是否可以在Python程序内部将stdin,stdout,stderr读写操作重定向到一个内部对象呢?答案是肯定的。
Python提供了一个StringIO模块来完成这个设想,比如:
from StringIO import StringIO
import sys
buff =StringIO()

temp =sys.stdout #保存标准I/O流
sys.stdout =buff #将标准I/O流重定向到buff对象
print 42, 'hello', 0.001

sys.stdout=temp #恢复标准I/O流
print buff.getvalue()
阅读全文

首先,我对 os.exit 这个用法表示惊讶,于是亲自尝试了一下:
>>> print sys.version
2.7.3 (default, Jul 24 2013, 00:50:10)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
>>> import os
>>> os.exit
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'module' object has no attribute 'exit'
>>>
WTF?os.exit 根本就不存在呀!如果这个用法真的存在,请在评论区里指正。谢谢
比如说,os.path.split、os.system等,这些都是在和OS交互。值得注意的,os.fork只在*nix上可用,这也说明了「os模块负责与操作系统的交互」。
至于sys呢,sys.exit让解释器停止你的程序、sys.version获得python解释器(而非操作系统)的版本号、sys.argv获得你的程序的参数……所以说sys是与解释器高度相关的。
综上,题主你“os连接操作系统、sys连接解释器”的说法很对。我不知道题主哪里不能理解它们的区别,你可以在评论区说出来。
【本段存在重大技术错误已经宣布召回】至于题主说的path,我个人理解是这样的:
你说path和os肯定有关系吧,path和python解释器也有关系呀:你的程序能import哪些模块就取决于path。guido想了半天,实在不知道应该把path放在os里还是sys里,于是干脆在os和sys里都放了一个path。
刚意识到自己脑残了,os.path和sys.path明明是完全不同的两个东西啊!sys.path是人民群众喜闻乐见的PATH环境变量,os.path是一个module,提供split、join、basename等“处理目录、文件名”的工具。

os与sys模块的官方解释如下:

os: This module provides a portable way of using operating system dependent functionality.
这个模块提供了一种方便的使用操作系统函数的方法。
sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.
这个模块可供访问由解释器使用或维护的变量和与解释器进行交互的函数。
总结就是,os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。


python 中os.system和commands.getoutput的区别
这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。[python]os.system("ls")2. 使用Popen模块产生新的process 现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执 行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from ...

python os模块怎么使用?
15. os.path.abspath()——获得绝对路径。例:16. os.path.join(path, name)——连接目录和文件名。例:17.os.path.basename(path)——返回文件名。18. os.path.dirname(path)——返回文件路径。19. 获得程序所在的实际目录。执行结果 细节——os.path.spilit()把目录和文件区分开。Python(...

Python中如何删除一个文件
python中的os.remove()方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError。注意:可以使用os.rmdir()删除目录。使用os.unlink()删除Python文件 os.unlink()是os.remove()的别名。在Unix OS中,删除也称为unlink。注意:所有功能和语法与os.unlink()和os.remove(...

如何学习python的os模块
Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。(一语中的)二、常用方法 1、os.name 输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux\/Unix用户,它是'posix'。2、os.getcwd()函数得到当前工作目录,即当前Python脚本工作的...

python os.walk
python os.walk是怎样的呢?下面就让我们一起来了解一下吧:os.walk是属于python下的一个方法,os.walk()方法一般是用来通过在目录树中游走输出在目录中的文件名,向上或是向下。简单来说,os.walk()方法是属于一个简单易用的文件、目录遍历器,能够更好地帮助我们高效的处理各种文件、目录等方面的...

Python中OS模板的什么方法用来改变默认目录?
python os模板操作文件和目录常用方法 python 常用操作文件和目录方法:获得当前python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()。例如:返回C盘下的文件:os.listdir("C:\\")删除一个文件:os.remove(filepath)删除多个空目录:os.removedirs(r'd:python')检验给...

如何用python删除一个文件
python中的os.remove()方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError。注意:可以使用os.rmdir()删除目录。使用os.unlink()删除Python文件 os.unlink()是os.remove()的别名。在Unix OS中,删除也称为unlink。注意:所有功能和语法与os.unlink()和os.remove(...

Python中os模块常用的变量有哪些呢?
pardir:表示上一级文件夹的字符,即".."。defpath:用于resolve_executable()函数中,表示解析执行命令时搜索系统路径的默认路径列表。devnull:表示设备文件“\/dev\/null”,在Unix系统中通常用于发送丢弃数据。在Python程序中通常用于忽略输出。environ:是一个字典,包含系统环境变量的值。可以通过os....

Python中os模块创建目录的函数有哪些呢?
'os.mkdir():创建一个新目录。'os.makedirs():创建一个新目录,如果该目录的父目录不存在,则也会一并创建。下面是一些示例代码,展示了如何使用这两个函数来创建目录:导入 os 模块 import os 使用 os.mkdir() 创建一个新目录 os.mkdir("newdir")使用 os.makedirs() 创建一个新目录,...

Python必学的模块有哪些?
我们运行“type(time.time())”,返回的是float类型。格式化的时间字符串(Format String)结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)二、random模块 三、os模块 os模块是与操作系统交互的一个接口 ...

甘泉县18887669035: python os和sys模块的区别 -
訾张正心: 区别很大,可以理解为os是批的是operator system,而sys指的是program system,也就是,os是操作系统 模块,如os.path,而sys是指程序模块,如sys.argv

甘泉县18887669035: python中os和sys模块的区别与常用方法总结 -
訾张正心: os与sys模块的官方解释如下:os: This module provides a portable way of using operating system dependent functionality.这个模块提供了一种方便的使用操作系统函数的方法.sys: This module provides access to some variables used or ...

甘泉县18887669035: python中 sys 、os 、re、time、这些模块的具体作用 -
訾张正心: 这个你最好看看python的官方文档,大概说下sys是系统函数,os是操作服务器的函数(比如创建文件),re是正则,time就是时间

甘泉县18887669035: 有哪位大神指导下,Python中文件、模块与包三者之间有什么区别呀?麻烦解释的详细点哈,谢谢啦.... -
訾张正心: Python在处理功能复用和功能颗粒度划分时采用了类、模块、包的结构.这种处理跟C++中的类和名字空间类似,但更接近于Java所采用的概念. 类 类的概念在许多语言中出现,很容易理解.它将数据和操作进行封装,以便将来的复用. 模块 ...

甘泉县18887669035: python sys模块具体用在什么地方?什么作用 -
訾张正心: sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作. 如判断文件和文件夹是否存在,创建文件文件夹,获取系统版本之类的操作.

甘泉县18887669035: 怎么查找 Python 模块的用法说明及模块文件位置 -
訾张正心: 1)help('模块名'): 是看模块说明的2) 查位置: import sys sys.modules['模块名'] 其实全都在 .../lib/

甘泉县18887669035: python中的os.path.splitext是干什么用的 -
訾张正心: 作用 :分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作 .比如:<span style="font-size: 18px;">import os path_01='D:/User/wgy/workplace/data/notMNIST_large.tar.gar' path_02='D:/User/wgy/workplace/data/...

甘泉县18887669035: python模块os里面os.system命令返回什么? -
訾张正心: linux命令都是返回0代表成果,这是一个习惯,基本没有人用返回值0代表命令失败.所以 os.system(命令) 如果返回为0则带便命令执行成功了.具体返回其他数值代表什么意思,就要看具体命令是什么了.比如最常用的 ls 命令, 有三个返回值:0 代表成功1 代表小问题2 代表大问题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网