【python】【内置模块】【一】【getpass os】

1. getpass

变量/函数名 含义 样例
getuser()  获取系统用户名
>>> print getpass.getuser()
Administrator
getpass()  提示用户输入密码  
>>> pwd = getpass.getpass("please input password:")
123
>>> print pwd
123

 

 

 

 

 

 

 

 

2. os

  这个模块提供了一种方便的使用操作系统函数的方法

变量/函数名 含义 样例
altsep 根目录 /
curdir 当前路径 .
pardir 父路径 ..
sep 路径分隔符 /
extsep 文件扩展名分隔符 .
pathsep 数组切片分隔符 :
linesep 行结束符
>>> print map(str, os.linesep)
['\r', '\n']
defpath  
>>> print os.defpath
.;C:\bin
name 使用的平台
>>> print os.name
nt
path 见os.path  
devnull 空设备文件路径 /dev/null
SEEK_SET 设置文件位置宏  0
SEEK_CUR 设置文件位置宏  1
SEEK_END 设置文件位置宏  2
F_OK 文件是否存在  0
O_APPEND 文件以添加方式打开  
O_CREAT 如果文件不存在,则创建文件  
O_EXCL 如果文件存在,并且指定了os.O_CREAT,则在指定该选项的情况下os.open调用会抛出OSError异常  
O_NOINHERIT 阻止创建一个共享的文件描述符  
O_RANDOM 缓存优化,但不限制从磁盘中随机存取  
O_RDONLY 文件以只读方式打开  
O_RDWR 文件以读写方式打开  
O_SEQUENTIAL 缓存优化,但不限制从磁盘中序列存  
O_SHORT_LIVED    
O_TEMPORARY    
O_TEXT    
O_TRUNC 文件大小截断为0  
O_WRONLY 文件以只写方式打开  
P_DETACH    
P_NOWAIT    
P_NOWAITO    
P_OVERLAY    
P_WAIT    
R_OK  文件是否可读  4
TMP_MAX    
W_OK    
X_OK    
abort() 产生一个SIGABRT标识到当前的进程  
access() 文件是否存在、可读写执行
>>> print os.access('test.txt', os.F_OK|os.R_OK|os.W_OK|os.X_OK)
true
chdir()  改变当前的工作目录
>>> os.chdir('/Users/')
>>> os.getcwd()
'/Users'
chmod()  修改文件权限
>>> os.chmod('test.txt', stat.S_IRUSR)
>>> os.system('ls -al test.txt')
-r--------  1 *******  staff  1338 Oct 14 16:25 test.txt
0
close() 关闭文件句柄
>>> fd = os.open('test.txt', os.O_RDONLY)
>>> os.close(fd)
closerange() 关闭指定范围的文件句柄[low,high)
>>> fd = os.open('test.txt', os.O_RDONLY)
>>> os.closerange(fd,fd+1)
dup() 复制文件描述符
>>> fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
>>> fd2 = os.dup(fd)
>>> os.write(fd2, 'this is test.')
>>> os.closerange(fd, fd2+1)
dup2() 复制文件描述符
>>> fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
>>> fd2 = fd+1
>>> os.dup2(fd, fd2)
>>> os.write(fd2, 'this is test.')
>>> os.closerange(fd, fd2+1)
environ()    
error()    

execv(path,args)
execve(path,args,env)
execl(path,arg0,arg1,...)
execle(path,arg0,arg1,...,env)
execlp(file,arg0,arg1,...)
execlpe(file,arg0,arg1,...,env)
execvp(file,args)
execvpe(file,args,env)

这些函数都执行一个新的程序,然后用新的程序替换当前子进程的进程空间,而该子进程从新程序的main函数开始执行。在Unix下,该新程序的进程id是原来被替换的子进程的进程id。在原来子进程中打开的所有描述符默认都是可用的,不会被关闭。

execv*系列的函数表示其接受的参数是以一个list或者是一个tuple表示的参数表。execl*系列的函数表示其接受的参数是一个个独立的参数传递进去的。

exec*p*系列函数表示在执行参数传递过去的命令时使用PATH环境变量来查找命令。

exec*e系列函数表示在执行命令的时候读取该参数指定的环境变量作为默认的环境配置,最后的env参数必须是一个mapping对象,可以是一个dict类型的对象。

 

 
fdopen() 通过文件描述符返回文件对象
>>> fd = os.open('test.txt', os.O_WRONLY)
>>> fd2 = os.fdopen(fd, 'w')
>>> fd2.write('this is test')
>>> fd2.close()
fstat() 通过文件描述符获取文件信息
>>> fd = os.open('test.txt', os.O_WRONLY)
>>> os.fstat(fd)
posix.stat_result(st_mode=33188, st_ino=8327356, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=1416, st_atime=1520073503, st_mtime=1520073471, st_ctime=1520073471)
>>> os.close(fd)
fsync() 强制将内容写入文件,刷新缓存
>>> fd = os.open('test.txt', os.O_WRONLY)
>>> os.write(fd, 'this is test')
>>> os.fsync(fd)
>>> os.close(fd)
getcwd() 获得当前工作目录
>>> os.chdir('/Users/')
>>> os.getcwd()
'/Users'
getcwdu() 获得当前工作目录,返回unicode编码
>>> os.chdir('/Users/')
>>> os.getcwdu()
u'/Users'
getpid() 获得当前进程ID
>>> os.getpid()
23408
isatty() 判断如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
>>> fd = os.open('test.txt', os.O_WRONLY)
>>> os.isatty(fd)
False
kill() 给进程发送信号
>>> import signal
>>> os.kill(os.getpid(), signal.SIGTERM)
listdir() 列出当前目录
>>> os.listdir('/Users/')
['.AllUsers', '.localized', 'Shared', 'xxxxxx']
lseek() 设置文件描述符fd当前位置
>>> fd = os.open('test.txt', os.O_WRONLY)
>>> os.lseek(fd, 100, os.SEEK_SET)
lstat() 显示文件状态,如果是软链接则不进行跟进
>>> os.system('ls -al b c')
-rw-r--r--  1 ******  staff  1416 Mar  3 18:37 b
lrwxr-xr-x  1 ******  staff     1 Mar  4 14:18 c -> b
0
>>> os.lstat('c')
posix.stat_result(st_mode=41453, st_ino=9327498, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=1, st_atime=1520144309, st_mtime=1520144309, st_ctime=1520144309)
>>> os.stat('c')
posix.stat_result(st_mode=33188, st_ino=8327356, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=1416, st_atime=1520073503, st_mtime=1520073471, st_ctime=1520073471)
mkdir() 创建文件夹
>>> os.mkdir('d')
>>> os.system('ls -l -d d')
drwxr-xr-x  2 ******  staff  68 Mar  4 14:23 d
0
open() 打开文件
>>> fd = os.open('test.txt', os.O_WRONLY)
pipe() 创建一个管道
>>> r, w = os.pipe()
popen() 用于从一个命令打开一个管道,支持读或写
>>> fd = os.popen('echo this is sample.', 'r')
>>> fd.read()
'this is sample.\n'
popen2() 用于从一个命令打开管道,可以同时支持读和写  
popen3() 用于从一个命令打开管道,可以同时支stdin、stdout、stderr  
popen4()  用于从一个命令打开管道,可以同时支stdin、stdout_stderr  
putenv() 增加环境变量,putenv()不会直接改变os.environ,所以最好是修改os.environ
>>> os.putenv('xxxxxxxx', 'b')
>>> os.environ['xxxxxxxx']
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'xxxxxxxx'
read() 读数据
>>> fd = os.open('test.txt', os.O_RDONLY)
>>> os.read(fd, 100)
'this is test.txt\n'
remove() 删除文件
>>> os.remove('test.txt')
>>> os.system('ls -al test.txt')
256
ls: test.txt: No such file or directory
rename() 重命名文件或文件夹
>>> os.system('touch test.txt')
0
>>> os.rename('test.txt', 'test2.txt')
>>> os.system('ls -al test.txt test2.txt')
ls: test.txt: No such file or directory
-rw-r--r--  1 ******  staff  0 Mar  4 14:48 test2.txt
256
rmdir() 删除文件夹
>>> os.system('mkdir dir3')
0
>>> os.rmdir('dir3')
spawnv(mode,path,args)
spawnve(mode,path, args,env)
spawnv(mode,path,args)
spawnve(mode,path,args,env)
spawnl(mode,path,...)
spawnle(mode,path,...,env)
创建子进程运行path文件 
>>> os.spawnv(os.P_WAIT, '/bin/ls', ['/bin/ls','test.txt'])
test.txt
0
stat() 显示文件状态,见lstat()  
stat_float_time() 用于决定stat_result是否以float对象显示时间戳
>>> os.stat_float_times(True)
>>> os.stat('c')
posix.stat_result(st_mode=33188, st_ino=8327356, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=1416, st_atime=1520073503, st_mtime=1520073471, st_ctime=1520073471)
>>> os.stat_float_times(False)
>>> os.stat('c')
posix.stat_result(st_mode=33188, st_ino=8327356, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=1416, st_atime=1520073503, st_mtime=1520073471, st_ctime=1520073471)
stat_result() 创建stat_result对象  
startvfs_result()  创建statvfs_result对象  
strerror() 错误码转字符串
>>> os.strerror(1)
'Operation not permitted'
system() 执行shell命令
>>> os.system('ls -al')
tempnam() 创建临时文件,返回文件名
>>> a = os.tempnam('var/tmp/')
>>> a
'/var/tmp/tmp.AHs7r2'
>>> os.system('ls -al /var/tmp/tmp.AHs7r2')
ls: /var/tmp/tmp.AHs7r2: No such file or directory
256
times() 返回进程执行用户、内核等时间相关数据(utime, stime, cutime, cstime, elapsed_time)
>>> os.times()
(3.52, 1.12, 0.0, 0.0, 1520148302.85)
tmpfile() 创建临时文件,返回文件对象
>>> fd = os.tmpfile()
>>> fd.write('this is test.txt')
>>> fd.seek(0)
>>> fd.read()
'this is test.txt'
tmpnam() 创建临时文件,返回文件名,不可指定路径 
>>> b = os.tmpnam()
>>> b
'/var/tmp/tmp.1.HHpTAm'
>>> os.system('ls -al /var/tmp/tmp.1.HHpTAm')
256
ls: /var/tmp/tmp.1.HHpTAm: No such file or directory
umask() 设置umask
>>> os.umask(222)
18
>>> os.system('touch dd; ls -al dd')
-r--r-----  1 ******  staff  0 Mar  4 15:44 dd
0
>>> os.umask(18)
>>> os.system('touch aa; ls -al aa')
-rw-r--r--  1 ******  staff  0 Mar  4 15:46 aa
0
unlink() 用于删除文件,如果文件是一个目录则返回一个错误
>>> os.unlink('aa')
urandom() 随即产生n个字节的字符串,可以作为随机加密key使用 
>>> os.urandom(5)
'\xaf\xb8\x8b*\x84'
utime() 用于设置指定路径文件最后的修改和访问时间
>>> st = os.stat('cc')
>>> print st.st_atime, st.st_mtime
1520149076 1520149076
>>> os.utime('cc', (1520149075, 1520149075))
>>> os.stat('cc')
posix.stat_result(st_mode=33206, st_ino=9332119, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=0, st_atime=1520149075, st_mtime=1520149075, st_ctime=1520149886)
waitpid() 等待进程完成  
write() 写入数据  
makedirs() 用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。
>>> os.makedirs('./x/y/z')
removedirs() os.removedirs() 方法用于递归删除目录。
>>> os.removedirs('./x/y/z')
renames() 用于递归重命名目录或文件
>>> os.renames('bb', 'xx/bb')
>>> os.system('ls -al xx/bb')
--w-rw-rw-  1 tobyytang  staff  0 Mar  4 15:36 xx/bb
0
walk() 列出指定目录下所有文件和文件夹
>>> os.system('mkdir test1; cd test1; touch aa bb; mkdir test2; cd test2; touch cc')
0
>>> list(os.walk('./test1/')) [('./test1/', ['test2'], ['aa', 'bb']), ('./test1/test2', [], ['cc'])]
getenv() 获取环境变量
>>> os.environ['TERM']
'emacs'
>>> os.getenv('TERM')
'emacs'

 

 

 

 

 

 

posted @ 2018-03-01 22:54  aclove  阅读(126)  评论(0)    收藏  举报