python笔记(十) - 异常和文件处理
2009-04-27 15:19
816 查看
1.打开一个不存在的文件:
try:
f = open('demon.txt','w')
#print s
except IOError:
print 'file is not exits!'
except:
print 'other exception'
else:
print 'file exits!'
用trt...exceot不捕获异常。如果没有异常发生,则执行else后面的内容
和C#一样,python捕获异常也是按照顺序的,上例中,先捕获IOError异常,如果没有写明异常类型则捕获所有的异常,你去可去掉第三行的#会发生什么。
2.上例中,我们使用open打开了一个文件,这个方法可以接受三个参数,文件名,模式和缓冲区,打开文件的模式有三种:‘r’-只读模式,也是默认模式,'w'-写模式,'a'-追加模式
在写模式和追加模式两种情况下,如果文件不存在会自动创建文件,读模式则会抛出异常
>>> f = open('demon.txt','w')
>>> f.write('line1')
>>> f.close()
>>> file('demon.txt').read()
'line1'
3.接下来看看OS模块
>>> import os
>>> os.path.join("c:\\music\\ap\\", "mahadeva.mp3")
'c:\\music\\ap\\mahadeva.mp3'
>>> os.path.join("c:\\music\\ap", "mahadeva.mp3")
'c:\\music\\ap\\mahadeva.mp3'
>>> os.path.expanduser("~")
'c:\\Documents and Settings\\mpilgrim\\My Documents'
>>> os.path.join(os.path.expanduser("~"), "Python")
'c:\\Documents and Settings\\mpilgrim\\My Documents\\Python'
expanduser 将对使用 ~ 来表示当前用户根目录的路径名
4.分割路径
>>> os.path.split("c:\\music\\ap\\mahadeva.mp3")
('c:\\music\\ap', 'mahadeva.mp3')
>>> (filepath, filename) = os.path.split("c:\\music\\ap\\mahadeva.mp3")
>>> filepath
'c:\\music\\ap'
>>> filename
'mahadeva.mp3'
>>> (shortname, extension) = os.path.splitext(filename)
>>> shortname
'mahadeva'
>>> extension
'.mp3'
5.列出所有文件
>>> os.listdir("c:\\music\\_singles\\")
['a_time_long_forgotten_con.mp3', 'hellraiser.mp3',
'kairo.mp3', 'long_way_home1.mp3', 'sidewinder.mp3',
'spinning.mp3']
>>> dirname = "c:\\"
>>> os.listdir(dirname)
['AUTOEXEC.BAT', 'boot.ini', 'CONFIG.SYS', 'cygwin',
'docbook', 'Documents and Settings', 'Incoming', 'Inetpub', 'IO.SYS',
'MSDOS.SYS', 'Music', 'NTDETECT.COM', 'ntldr', 'pagefile.sys',
'Program Files', 'Python20', 'RECYCLER',
'System Volume Information', 'TEMP', 'WINNT']
>>> [f for f in os.listdir(dirname)
if os.path.isfile(os.path.join(dirname, f))]
['AUTOEXEC.BAT', 'boot.ini', 'CONFIG.SYS', 'IO.SYS', 'MSDOS.SYS',
'NTDETECT.COM', 'ntldr', 'pagefile.sys']
>>> [f for f in os.listdir(dirname)
if os.path.isdir(os.path.join(dirname, f))]
['cygwin', 'docbook', 'Documents and Settings', 'Incoming',
'Inetpub', 'Music', 'Program Files', 'Python20', 'RECYCLER',
'System Volume Information', 'TEMP', 'WINNT']
listdir 函数接收一个路径名,它返回那个目录的内容的一个 list
6.
>>> dirname = 'c:\\'
>>> [os.path.normcase(f) for f in os.listdir(dirname)]
['adclog', 'autoexec.bat', 'boot', 'boot.bak', 'boot.ini', 'bootfont.bin', 'config.msi', 'config.sys', 'cygwin', 'documents and settings', 'download', 'downloads', 'ftc2008', 'grldr', 'img', 'inetpub', 'io.sys', 'krecycle', 'menu.lst', 'msdos.sys', 'msocache', 'ntdetect.com', 'ntldr', 'pagefile.sys', 'program files', 'python26', 'recycler', 'system volume information', 'windows']
>>> [os.path.join(dirname,f) for f in os.listdir(dirname) if os.path.splitext(f)[1] in ['.ini']]
['c:\\boot.ini']
>>>
我们使用 os.path.normcase(f) 根据操作系统的缺省值对大小写进行标准化处理
7.一种更强大的方法
>>> import glob
>>> glob.glob('c:\\*.ini')
['c:\\boot.ini']
>>>
它查找出在C目录下所有的.ini文件
try:
f = open('demon.txt','w')
#print s
except IOError:
print 'file is not exits!'
except:
print 'other exception'
else:
print 'file exits!'
用trt...exceot不捕获异常。如果没有异常发生,则执行else后面的内容
和C#一样,python捕获异常也是按照顺序的,上例中,先捕获IOError异常,如果没有写明异常类型则捕获所有的异常,你去可去掉第三行的#会发生什么。
2.上例中,我们使用open打开了一个文件,这个方法可以接受三个参数,文件名,模式和缓冲区,打开文件的模式有三种:‘r’-只读模式,也是默认模式,'w'-写模式,'a'-追加模式
在写模式和追加模式两种情况下,如果文件不存在会自动创建文件,读模式则会抛出异常
>>> f = open('demon.txt','w')
>>> f.write('line1')
>>> f.close()
>>> file('demon.txt').read()
'line1'
3.接下来看看OS模块
>>> import os
>>> os.path.join("c:\\music\\ap\\", "mahadeva.mp3")
'c:\\music\\ap\\mahadeva.mp3'
>>> os.path.join("c:\\music\\ap", "mahadeva.mp3")
'c:\\music\\ap\\mahadeva.mp3'
>>> os.path.expanduser("~")
'c:\\Documents and Settings\\mpilgrim\\My Documents'
>>> os.path.join(os.path.expanduser("~"), "Python")
'c:\\Documents and Settings\\mpilgrim\\My Documents\\Python'
expanduser 将对使用 ~ 来表示当前用户根目录的路径名
4.分割路径
>>> os.path.split("c:\\music\\ap\\mahadeva.mp3")
('c:\\music\\ap', 'mahadeva.mp3')
>>> (filepath, filename) = os.path.split("c:\\music\\ap\\mahadeva.mp3")
>>> filepath
'c:\\music\\ap'
>>> filename
'mahadeva.mp3'
>>> (shortname, extension) = os.path.splitext(filename)
>>> shortname
'mahadeva'
>>> extension
'.mp3'
5.列出所有文件
>>> os.listdir("c:\\music\\_singles\\")
['a_time_long_forgotten_con.mp3', 'hellraiser.mp3',
'kairo.mp3', 'long_way_home1.mp3', 'sidewinder.mp3',
'spinning.mp3']
>>> dirname = "c:\\"
>>> os.listdir(dirname)
['AUTOEXEC.BAT', 'boot.ini', 'CONFIG.SYS', 'cygwin',
'docbook', 'Documents and Settings', 'Incoming', 'Inetpub', 'IO.SYS',
'MSDOS.SYS', 'Music', 'NTDETECT.COM', 'ntldr', 'pagefile.sys',
'Program Files', 'Python20', 'RECYCLER',
'System Volume Information', 'TEMP', 'WINNT']
>>> [f for f in os.listdir(dirname)
if os.path.isfile(os.path.join(dirname, f))]
['AUTOEXEC.BAT', 'boot.ini', 'CONFIG.SYS', 'IO.SYS', 'MSDOS.SYS',
'NTDETECT.COM', 'ntldr', 'pagefile.sys']
>>> [f for f in os.listdir(dirname)
if os.path.isdir(os.path.join(dirname, f))]
['cygwin', 'docbook', 'Documents and Settings', 'Incoming',
'Inetpub', 'Music', 'Program Files', 'Python20', 'RECYCLER',
'System Volume Information', 'TEMP', 'WINNT']
listdir 函数接收一个路径名,它返回那个目录的内容的一个 list
6.
>>> dirname = 'c:\\'
>>> [os.path.normcase(f) for f in os.listdir(dirname)]
['adclog', 'autoexec.bat', 'boot', 'boot.bak', 'boot.ini', 'bootfont.bin', 'config.msi', 'config.sys', 'cygwin', 'documents and settings', 'download', 'downloads', 'ftc2008', 'grldr', 'img', 'inetpub', 'io.sys', 'krecycle', 'menu.lst', 'msdos.sys', 'msocache', 'ntdetect.com', 'ntldr', 'pagefile.sys', 'program files', 'python26', 'recycler', 'system volume information', 'windows']
>>> [os.path.join(dirname,f) for f in os.listdir(dirname) if os.path.splitext(f)[1] in ['.ini']]
['c:\\boot.ini']
>>>
我们使用 os.path.normcase(f) 根据操作系统的缺省值对大小写进行标准化处理
7.一种更强大的方法
>>> import glob
>>> glob.glob('c:\\*.ini')
['c:\\boot.ini']
>>>
它查找出在C目录下所有的.ini文件
相关文章推荐
- [python自学笔记]匿名函数和文件处理、异常
- python笔记12--异常处理
- c++笔记之异常处理、名字空间、文件输入输出流
- python-文件、异常处理、with else
- 【Python】pdf文件处理之“PyPDF2”库简易安装笔记
- 廖雪峰python学习笔记10&&11:容错处理与文件读写
- python笔记-012-文件和异常
- Python开发技术详解-笔记_第07章-文件的处理
- 鱼c笔记——Python异常处理
- Python学习笔记整理(十七)异常处理
- python 异常处理 笔记 以及with 的用法
- python学习笔记8.1-异常处理
- Python的学习笔记——文件与异常
- python3.4学习笔记(二) 类型判断,异常处理,终止程序
- devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用
- 《Head First Python》笔记 第三章 文件与异常
- Python文件处理-专题笔记
- Python笔记(3)异常处理
- Python文件与异常--处理错误
- python笔记 - 异常处理中的END_FINALLY指令