码迷,mamicode.com
首页 > 编程语言 > 详细

Python IO编程——操作文件和目录

时间:2016-07-14 22:12:53      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:python   os   path   文件   目录   

1.1   操作文件和目录

>>> import os

>>> os.name     #操作系统类型

‘posix‘

>>> os.uname()     #详细的系统信息

posix.uname_result(sysname=‘Linux‘,nodename=‘daidai.com‘, release=‘2.6.18-194.el5‘, version=‘#1 SMP Tue Mar 1621:52:39 EDT 2010‘, machine=‘x86_64‘)

>>> os.environ      #当前环境变量

environ({‘OLDPWD‘: ‘/root‘, ‘PATH‘:‘/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin‘,‘LESSOPEN‘: ‘|/usr/bin/lesspipe.sh %s‘, ‘SSH_ASKPASS‘:‘/usr/libexec/openssh/gnome-ssh-askpass‘, ‘KDE_IS_PRELINKED‘: ‘1‘, ‘SSH_TTY‘:‘/dev/pts/1‘, ‘LS_COLORS‘:‘no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*NaNd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:‘,‘SHLVL‘: ‘1‘, ‘HOSTNAME‘: ‘daidai.com‘, ‘QTDIR‘: ‘/usr/lib64/qt-3.3‘, ‘TERM‘:‘vt100‘, ‘HOME‘: ‘/root‘, ‘KDEDIR‘: ‘/usr‘, ‘LOGNAME‘: ‘root‘, ‘_‘:‘/usr/bin/python‘, ‘SSH_CLIENT‘: ‘192.168.20.1 10042 22‘, ‘SHELL‘: ‘/bin/bash‘,‘HISTSIZE‘: ‘1000‘, ‘PWD‘: ‘/root/python‘, ‘KDE_NO_IPV6‘: ‘1‘, ‘CVS_RSH‘:‘ssh‘, ‘QTINC‘: ‘/usr/lib64/qt-3.3/include‘, ‘QTLIB‘: ‘/usr/lib64/qt-3.3/lib‘,‘INPUTRC‘: ‘/etc/inputrc‘, ‘LANG‘: ‘en_US.UTF-8‘, ‘SSH_CONNECTION‘:‘192.168.20.1 10042 192.168.20.101 22‘, ‘MAIL‘: ‘/var/spool/mail/root‘,‘G_BROKEN_FILENAMES‘: ‘1‘, ‘USER‘: ‘root‘})

>>> os.environ.get(‘PATH‘)    #某个环境变量

‘/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin‘

1.1.1   目录操作

>>> import os

>>> os.path.abspath(‘.‘)   #显示当前目录绝对路径

‘/root/python‘

>>> os.path.join(os.path.abspath(‘.‘),‘testdir‘)    #连接两个目录,并不会生成该目录,除非定向输出文件

‘/root/python/testdir‘

>>> os.mkdir(os.path.join(os.path.abspath(‘.‘),‘testdir‘))   #创建目录

>>> os.rmdir(os.path.join(os.path.abspath(‘.‘),‘testdir‘))   #删除目录

>>> os.system(‘ls-l‘)     #执行操作系统命令

total 84

-rw-r--r-- 1 root root  174 Jul 3 20:12 age.py

-rw-r--r-- 1 root root  152 Jul 13 14:12 assert.py

-rw-r--r-- 1 root root  181 Jul 3 20:25 birth.py

-rw-r--r-- 1 root root   19 Jul 1 14:03 calc.py

-rw-r--r-- 1 root root  244 Jul 13 10:56 err_logging.py

-rw-r--r-- 1 root root  115 Jul 13 15:03 err_log_level.py

-rw-r--r-- 1 root root  205 Jul 13 20:33 err.py

-rw-r--r-- 1 root root  143 Jul 3 20:36 for.py

-rw-r--r-- 1 root root  333 Jul 8 21:20 hello_module.py

>>> os.path.split(os.path.join(os.path.abspath(‘.‘),‘age.py‘))

(‘/root/python‘, ‘age.py‘)

os.path.split()函数,把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

>>> os.path.splitext(os.path.join(os.path.abspath(‘.‘),‘age.py‘))

(‘/root/python/age‘, ‘.py‘)

os.path.splitext()可以直接让你得到文件扩展名

这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。

1.1.2   文件操作

>>> import os

>>> os.rename(‘test.txt‘,‘test.py‘)    #重命名文件

>>> os.remove(‘test.py‘)       #删除文件

列出当前目录下所有目录

>>> [x forx in os.listdir(‘.‘) if os.path.isdir(x)]      #不含子目录

[‘Desktop‘, ‘.gconf‘, ‘.redhat‘,‘.gnome2_private‘, ‘Python-3.5.0b4‘, ‘redis‘, ‘python‘, ‘.chewing‘, ‘.Trash‘,‘.gnome‘, ‘.nautilus‘, ‘.kde‘, ‘.scim‘, ‘.gconfd‘, ‘.gnome2‘, ‘.metacity‘,‘.gstreamer-0.10‘, ‘.eggcups‘, ‘shell‘]

列出当前目录以.py结尾的文件

>>> [x forx in os.listdir(‘.‘) if os.path.isfile(x) and os.path.splitext(x)[1] == ‘.py‘]

[‘err_log_level.py‘, ‘my_abs.py‘, ‘age.py‘,‘中文测试.py‘, ‘birth.py‘, ‘mydict_test.py‘, ‘x.py‘, ‘mult_line.py‘,‘listpop.py‘, ‘calc.py‘, ‘hello.py‘, ‘assert.py‘, ‘for.py‘, ‘sum100.py‘,‘err_logging.py‘, ‘mydict.py‘, ‘err.py‘, ‘hello_module.py‘, ‘move.py‘]


本文出自 “90SirDB” 博客,请务必保留此出处http://90sirdb.blog.51cto.com/8713279/1826525

Python IO编程——操作文件和目录

标签:python   os   path   文件   目录   

原文地址:http://90sirdb.blog.51cto.com/8713279/1826525

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!