操作系统服务:OS模块
2016-09-06 22:48
337 查看
http://blog.csdn.net/pipisorry/article/details/52454486
一般的操作系统服务之OS模块Generic Operating System Services
Shell variables os.environ
Running programs os.system, os.popen, os.execv, os.spawnv
Spawning processes os.fork, os.pipe, os.waitpid, os.kill
Descriptor files, locks os.open, os.read, os.write
File processing os.remove, os.rename, os.mkfifo, os.mkdir, os.rmdir
Administrative tools os.getcwd, os.chdir, os.chmod, os.getpid, os.listdir, os.access
Portability tools os.sep, os.pathsep, os.curdir, os.path.split, os.path.join
Pathname tools os.path.exists('path'), os.path.isdir('path'), os.path.getsize('path')
[
16.1.1. File Names, Command Line Arguments, and Environment Variables
16.1.2. Process Parameters
16.1.3. File Object Creation
16.1.4. File Descriptor Operations16.1.4.1. Querying the size of a terminal
16.1.4.2. Inheritance of File Descriptors
16.1.5. Files and Directories16.1.5.1. Linux extended attributes
16.1.6. Process Management
16.1.7. Interface to the scheduler
16.1.8. Miscellaneous System Information
16.1.9. Miscellaneous Functions
]
2.os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
3.os.getenv() 用来读取环境变量
6.os.putenv() 用来设置环境变量 。推荐用os.environ,因为使用os.putenv()并不会真正改变os.environ字典里面的环境变量,即某些平台无效,但是使用os.environ有一个潜在的隐患:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。
os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
os.putenv('环境变量名称', '环境变量值')
8.os.remove() 函数用来删除一个文件
9.os.system() 函数用来运行shell命令 [python中调用命令行命令]
10.os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
11. os.access os.chmod
判断并修改文件读写权限
皮皮blog
获得Python脚本所在目录的位置
os.getcwd()
如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数。
sys.path[0]和sys.argv[0]
如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得。实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事,因为Python会自动把sys.argv[0]加入sys.path。
具体来说,如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出“C:\test”,sys.path[0]会输出“C:\test\getpath”。
更特别地,如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化
如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出“C:\test\getpath\libarary.zip”;
如果在setup.py里面指定zipfile=None参数,依赖库就会被打包到exe文件里面,那么sys.path[0]会输出“C:\test\getpath\getpath.exe”。
正确的方法[b]os.path.split(os.path.realpath(__file__))[0][/b]
但以上这些其实都不是脚本文件所在目录的位置。
C:\test
----sub/
----sub_path.py
----getpath.py
getpath.py调用sub_path.py;我们在C:\test下执行getpath.py。
如果我们在sub_path.py里面使用sys.path[0],那么其实得到的是getpath.py所在的目录路径“C:\test”,因为Python虚拟机是从getpath.py开始执行的。
如果想得到sub_path.py的路径,那么得这样
1. os.path.split(os.path.realpath(__file__))[0],其中__file__虽然是所在.py文件的完整路径,但是这个变量有时候返回相对路径,有时候返回绝对路径,因此还要用os.path.realpath()函数来处理一下。os.path.realpath(__file__)输出是“C:\test\sub\sub_path.py”,而os.path.split(os.path.realpath(__file__))[0]输出才是“C:\test\sub”。
2. 神奇的 Python 内部变量 __file__ ,该变量被自动设置为代码所在的 Python 模块文件名。 `` os.path.dirname(__file__)`` 将会获取自身所在的文件。如果在windows下,它会智能地选择正确的后向斜杠”“进行连接,而不是前向斜杠”/”。
假设目录结构是:
C:\test
----getpath
----path.py
---- sub
----sub_path.py
然后我们在C:\test下面执行python getpath/path.py,这时sub_path.py里面与各种用法对应的值其实是:
os.getcwd() “C:\test”,取的是起始执行目录
sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录
os.path.split(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是__file__所在文件sub_path.py的所在目录
2
原因是data/patterns.txt是相对当前.py文件的路径,而如果当前执行文件不是它,而是别的py文件调用这个函数,那么那个相对路径就是相对别的py文件而言的,就会找不到路径,所有最好使用上面代码的形式写相对路径,再用改成绝对路径。
[python/matplotlib 如何在默认目录下打开上一级目录的文件?]
[python文件、目录及路径操作-获取当前python文件的路径]
[如何获得Python脚本所在目录的位置]
[在python下,获取当前执行主脚本的方法有两个:sys.argv[0]和file]
from: http:// href="http://blog.csdn.net/pipisorry/article/details/52454486" target=_blank>blog.csdn.net/pipisorry/article/details/52454486
ref: [16. Generic Operating System Services]
[16.1.
一般的操作系统服务之OS模块Generic Operating System Services
os模块
模块包含普遍的操作系统功能。利用这个模块可以写出与平台无关的程序,比如就是使用os.sep可以取代操作系统特定的路径分割符。os模块包含
Tasks ToolsShell variables os.environ
Running programs os.system, os.popen, os.execv, os.spawnv
Spawning processes os.fork, os.pipe, os.waitpid, os.kill
Descriptor files, locks os.open, os.read, os.write
File processing os.remove, os.rename, os.mkfifo, os.mkdir, os.rmdir
Administrative tools os.getcwd, os.chdir, os.chmod, os.getpid, os.listdir, os.access
Portability tools os.sep, os.pathsep, os.curdir, os.path.split, os.path.join
Pathname tools os.path.exists('path'), os.path.isdir('path'), os.path.getsize('path')
[
16.1.1. File Names, Command Line Arguments, and Environment Variables
16.1.2. Process Parameters
16.1.3. File Object Creation
16.1.4. File Descriptor Operations16.1.4.1. Querying the size of a terminal
16.1.4.2. Inheritance of File Descriptors
16.1.5. Files and Directories16.1.5.1. Linux extended attributes
16.1.6. Process Management
16.1.7. Interface to the scheduler
16.1.8. Miscellaneous System Information
16.1.9. Miscellaneous Functions
]
os模块常用的方法
1.os.sep 可以取代操作系统特定的路径分割符2.os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
3.os.getenv() 用来读取环境变量
6.os.putenv() 用来设置环境变量 。推荐用os.environ,因为使用os.putenv()并不会真正改变os.environ字典里面的环境变量,即某些平台无效,但是使用os.environ有一个潜在的隐患:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。
os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型
os.putenv('环境变量名称', '环境变量值')
8.os.remove() 函数用来删除一个文件
9.os.system() 函数用来运行shell命令 [python中调用命令行命令]
10.os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。
11. os.access os.chmod
判断并修改文件读写权限
os目录和文件操作方法和os.path方法
[python文件、目录及路径操作][Python文件输入输出]皮皮blog
OS系统模块的应用
获得Python脚本所在目录的位置
os.getcwd()如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数。
sys.path[0]和sys.argv[0]
如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得。实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事,因为Python会自动把sys.argv[0]加入sys.path。
具体来说,如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出“C:\test”,sys.path[0]会输出“C:\test\getpath”。
更特别地,如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化
如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出“C:\test\getpath\libarary.zip”;
如果在setup.py里面指定zipfile=None参数,依赖库就会被打包到exe文件里面,那么sys.path[0]会输出“C:\test\getpath\getpath.exe”。
正确的方法[b]os.path.split(os.path.realpath(__file__))[0][/b]
但以上这些其实都不是脚本文件所在目录的位置。
C:\test
----sub/
----sub_path.py
----getpath.py
getpath.py调用sub_path.py;我们在C:\test下执行getpath.py。
如果我们在sub_path.py里面使用sys.path[0],那么其实得到的是getpath.py所在的目录路径“C:\test”,因为Python虚拟机是从getpath.py开始执行的。
如果想得到sub_path.py的路径,那么得这样
1. os.path.split(os.path.realpath(__file__))[0],其中__file__虽然是所在.py文件的完整路径,但是这个变量有时候返回相对路径,有时候返回绝对路径,因此还要用os.path.realpath()函数来处理一下。os.path.realpath(__file__)输出是“C:\test\sub\sub_path.py”,而os.path.split(os.path.realpath(__file__))[0]输出才是“C:\test\sub”。
2. 神奇的 Python 内部变量 __file__ ,该变量被自动设置为代码所在的 Python 模块文件名。 `` os.path.dirname(__file__)`` 将会获取自身所在的文件。如果在windows下,它会智能地选择正确的后向斜杠”“进行连接,而不是前向斜杠”/”。
实例说明
1 os.getcwd()、sys.path[0] (sys.argv[0])和__file__的区别是这样的:假设目录结构是:
C:\test
----getpath
----path.py
---- sub
----sub_path.py
然后我们在C:\test下面执行python getpath/path.py,这时sub_path.py里面与各种用法对应的值其实是:
os.getcwd() “C:\test”,取的是起始执行目录
sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录
os.path.split(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是__file__所在文件sub_path.py的所在目录
2
sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0], '../../..'))3
patternFile = r'data/patterns.txt' stopwordsFile = r'data/English_stopwords.txt' pathname = os.path.split(os.path.realpath(__file__))[0] patternFile = path.join(pathname, patternFile)如果不是绝对路径的时候,相对路径可能打开文件失败,出错:FileNotFoundError: [Errno 2] No such file or directory: 'data/English_stopwords.txt'
原因是data/patterns.txt是相对当前.py文件的路径,而如果当前执行文件不是它,而是别的py文件调用这个函数,那么那个相对路径就是相对别的py文件而言的,就会找不到路径,所有最好使用上面代码的形式写相对路径,再用改成绝对路径。
[python/matplotlib 如何在默认目录下打开上一级目录的文件?]
文件执行路径、目录
pathname=os.path.dirname(sys.executable)[python文件、目录及路径操作-获取当前python文件的路径]
[如何获得Python脚本所在目录的位置]
[在python下,获取当前执行主脚本的方法有两个:sys.argv[0]和file]
from: http:// href="http://blog.csdn.net/pipisorry/article/details/52454486" target=_blank>blog.csdn.net/pipisorry/article/details/52454486
ref: [16. Generic Operating System Services]
[16.1.
os— Miscellaneous operating system interfaces]
相关文章推荐
- 操作系统服务:OS模块
- 操作系统服务:OS模块
- Python3 操作系统与路径 模块(os / os.path / pathlib)
- Python3 操作系统与路径 模块(os / os.path / pathlib)
- 操作系统服务:其它模块
- Python3 操作系统与路径 模块(os / os.path / pathlib)
- 操作系统服务:其它模块
- 操作系统服务:其它模块
- 详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
- Python os模块和sys模块 操作系统的各种接口
- OS模块-提供对操作系统进行调用的接口
- Python内置的操作系统模块(os)与解释器交互模块(sys)
- Python笔记-os模块,操作系统的目录和文件操作
- 操作系统服务:logging日志记录模块
- Python3 操作系统与路径 模块(os / os.path / pathlib)
- node中使用os模块获取操作系统信息
- 操作系统服务:logging日志记录模块
- 操作系统服务:time时间模块+datetime模块
- os、os.path模块中关于文件、目录常用的函数使用方法
- 阿里巴巴-OS事业群-OS手机事业部-系统服务部门招聘Java开发工程师,有意者请进来