第六章 异常和文件处理
来源:互联网 发布:linux 一直ping的命令 编辑:程序博客网 时间:2024/04/29 07:59
第六章 异常和文件处理
1、异常处理
Python 使用 try...except 来处理异常,使用 raise 来引发异常
>>> try:... fsock = open("/notthere") ... except IOError: ... print "The file does not exist, exiting gracefully"... print "This line will always print" The file does not exist, exiting gracefullyThis line will always print
2、与文件对象共事
1)打开文件
open,用来打开在磁盘上的文件
open 返回一个文件对象,它拥有一些方法和属性,可以得到被打开文件的信息,以及对被打开文件进行操作
>>> f = open("/music/_singles/kairo.mp3", "rb") #open 方法可以接收三个参数:文件名、模式和缓冲区参数 >>> f.mode 'rb'>>> f.name '/music/_singles/kairo.mp3'
2)读取文件
>>> f.seek(-128, 2) #移动到另一个位置,0:绝对位置 (从文件起始处算起),1 :相对位置 (从当前位置算起),还有 2 :相对于文件尾的位置 >>> f.tell() #被打开文件中的当前位置 7542909>>> tagData = f.read(128) #读取指定个数的字节,并且返回含有读取数据的字符串
3)关闭文件
>>> f.close() #刷新被缓冲的系统还未写入的输出 (如果有的话),并且释放系统资源 >>> f<closed file '/music/_singles/kairo.mp3', mode 'rb' at 010E3988>>>> f.closed #文件对象的 closed 属性表示对象是打开还是关闭了文件 True
4)处理 I/O 错误
try: fsock = open(filename, "rb", 0) try: fsock.seek(-128, 2) tagdata = fsock.read(128) finally: #在 finally 块中的代码将总是 被执行,甚至某些东西在 try 块中引发一个异常也会执行 fsock.close() . . . except IOError: pass
5)写入文件
两种基本的文件模式:
追加 (Append) 模式将数据追加到文件尾
写入 (write) 模式将覆盖文件的原有内容
>>> logfile = open('test.log', 'w') >>> logfile.write('test succeeded') #使用 open 返回的文件对象的 write 方法向一个新打开的文件添加数据 >>> logfile.close()>>> print file('test.log').read() test succeeded>>> logfile = open('test.log', 'a') #"a" 参数的意思是为追加目的打开文件 >>> logfile.write('line 2')>>> logfile.close()>>> print file('test.log').read() test succeededline 2
3、for循环
for 循环简单地在一个列表上循环,与 list 解析的工作方式相同
>>> li = ['a', 'b', 'e']>>> for s in li: #s 将从第一个元素开始依次接收每个元素的值 ... print s abe>>> print "\n".join(li) abe>>> for i in range(len(li)): ... print li[i]abc
4、使用 sys.modules
sys.modules 是一个字典,它包含了从 Python 开始运行起,被导入的所有模块
__module__ 类属性获取已知类所在的模块
5、与目录共事
1)构造路径名
>>> import os>>> os.path.join("c:\\music\\ap\\", "mahadeva.mp3") #join 函数把一个或多个部分路径名连接成一个路径名 'c:\\music\\ap\\mahadeva.mp3'>>> os.path.expanduser("~") #表示当前用户根目录的路径名 'c:\\Documents and Settings\\mpilgrim\\My Documents'
2)分割路径名
>>> os.path.split("c:\\music\\ap\\mahadeva.mp3") #split 函数对一个全路径名进行分割,返回一个包含路径和文件名的 tuple ('c:\\music\\ap', 'mahadeva.mp3')>>> (filepath, filename) = os.path.split("c:\\music\\ap\\mahadeva.mp3") #返回值赋值给一个两个变量的 tuple >>> filepath 'c:\\music\\ap'>>> filename 'mahadeva.mp3'>>> (shortname, extension) = os.path.splitext(filename) #splitext 函数,可以用来对文件名进行分割,并且返回一个包含了文件名和文件扩展名的 tuple >>> shortname'mahadeva'>>> extension'.mp3'
3)列出目录
>>> os.listdir("c:\\music\\_singles\\") #返回目录中的所有文件和子目录 ['a_time_long_forgotten_con.mp3', 'hellraiser.mp3']
os.path.isfile:如果路径表示一个文件,则返回 1,否则为 0
os.path.isdir:当路径表示一个目录,则返回 1,否则为 0
4)使用 glob 列出目录
>>> glob.glob('c:\\music\\_singles\\s*.mp3') #接受一个通配符并且返回文件的或目录的完整路径与之匹 ['c:\\music\\_singles\\sidewinder.mp3','c:\\music\\_singles\\spinning.mp3']
- 第六章 异常和文件处理
- Java——第六章(异常处理和文件IO流操作)
- Java——第六章(异常处理和文件IO流操作)—项目案例
- (完)learn python第四章:异常处理机制和文件(第一节:异常处理机制)
- Java 异常和文件
- 异常和文件
- 异常和文件操作
- 第六章:异常处理
- 第六章 异常处理
- Dive in Python学习笔记六:异常和文件处理
- python基础(3) 匿名函数和文件处理、异常
- 第2章 文件和文件处理
- 路径和文件处理
- 函数和文件处理
- 第六章:Java_异常处理
- java第六章-异常处理
- 黑马程序员---Java异常和文件
- 第六章:6.2.4 软件包管理 - rpm命令管理 - 校验和文件提取
- Android中使用ProgressDialog创建进度对话框
- Android 开发之Eclipse Debug调试详解,Eclipse 在开发中使用到的快捷键很实用
- CSS_字体
- 黑马程序员——————交通灯管理系统
- 北京凝思科技笔试题(带答案)
- 第六章 异常和文件处理
- 下载编译goldfish内核
- Ubuntu Linux mount移动硬盘、U盘、SD卡
- 使用飞信VMDotNet使C#程序脱离.NET FRAMEWORK也能运行的一些心得 ------(我复制别个的)
- Ubuntu12.04 32位 安装oracle11g 图文教程
- Qt 布局管理 - 停靠窗口
- 单机hercules部署ZOS
- mini2440 uboot的使用经历
- 在模拟器中运行android