当前位置:文档之家› Python文件和异常处理

Python文件和异常处理

Python文件和异常处理
Python文件和异常处理

6. 异常和文件处理- Dive Into Python

6.1 异常处理.

Python的异常用

try

except

finally

来处理. 并且except后还可以跟else .

引发异常用raise

如果抛出的异常没有被处理. 在Python IDE中是显示一些红色的信息. 在真正的Python程序运行时. 会导致程序终止.

在以前我们已经见到过一下几种异常:

在Dictionary 中如果使用的key 不存在. 会引发KeyError异常.如:

>>> d = {"a":1, "b":"abc"}

>>> d["c"]

Traceback (most recent call last): File "", line 1, in

KeyError: 'c'

搜索列表中不存在的值. 将引发ValueError异常.如:

>>> li = [1,2]

>>> li.index(3)

Traceback (most recent call last): File "", line 1, in

ValueError: list.index(x): x not in list

对应的. 若用下标来引用列表中的元素. 若下标出界. 会产生IndexError异常.如:

>>> li[2]

Traceback (most recent call last):

File "", line 1, in

IndexError: list index out of range

调用不存在的方法. 会引发AttributeError异常.

引用不存在的变量. 引发NameError异常.

未强制转化就混用数据类型. 引发TypeError异常.

文件操作错误引发的IOError.如:

try:

fsock = open("/notthere")

except IOError:

print "The file dose not exits..."

else:

print "open the file."

print "this line will always print"

注意上边的代码中:

open是一个内置函数. 用来打开文件. 并返回一个文件对象.

try except 后边可以跟else 语句. 当没有捕捉到指定的异常时. 执行else 语句.

导入一个模块时. 若模块不存在. 会引发ImportError异常.

还可以定义自己的异常类. 定义时让它继承内置的Exception类. 然后在需要抛出异常时用raise抛出.

6.2 与文件对象共事

上一小节说过用open可以打开文件并返回文件对象. 它的函数声明如下:

open(name[, mode[, buffering]])

有3个参数(其中后两个是可选的). 分别表示文件名. 打开方式. 缓冲区参数. 例如:

>>> f = open("/music/_singles/kairo.mp3", "rb")

第2个参数指定为"rb". 表示以2进制读打开文件. 如果这个参数缺省. 则表示以文本方式打开.

如果不能打开. 则open引发 IOError 异常.

现在可以用文件对象的name属性和mode属性来查询它们. 如:

>>> https://www.doczj.com/doc/081532426.html,

'/music/_singles/kairo.mp3'

>>> f.mode

'rb'

打开文件后. 就可以进行读写了. 如:

>>> f.tell()

查询当前位置.

>>> f.seek(0, 2)

定位文件指针. 第一个参数是偏移值. 第二个可以取0. 1. 2三个值. 分别表示开头. 当前位置. 末尾. 若定位的地址不正确(例如超过范围) 则引发IOError异常.

所以这个语句就把文件指针定位到了文件尾.

>>> f.tell()

这将打印文件的长度.

>>> f.seek(-128, 2)

>>> data = f.read(128)

读取文件的最后128字节. 并将读入的的数据作为字符串返回. 读取数据时也同时后移文件指针.

其中read 的参数表示最大读取字节数. 也可以省略这个参数. 则表示一直读到文件末尾.

若读取时出现错误(如磁盘上有坏扇区或网络已断开). 引发IOError 异常.

>>> f.closed

查看文件是否关闭.

False

>>> f.close()

不再使用时应该关闭文件. 可以对一个已经关闭的文件再次关闭(不会发生异常).

>>> f.closed

True

关闭之后如果再对 f 进行 seek() 等操作. 会引发 ValueError 异常.

写入文件的办法和读取类似. 不过它要求文件是 "写" 打开的. 如:

>>> f1 = open('test.log', 'w')

其中 'w' 表示写打开. 这样即使文件不存在. 也会创建. 如果存在. 则覆盖现有的文件.

>>> f1.write('abc')

>>> f1.close()

>>> file('test.log').read()

用 file()打开文件和用open()打开是一样的. 所以打印:

'abc'

6.3 for循环

在Python中. for用来在一个List上遍历.如:

>>> li = [1, 2, 3]

>>> for i in li:

这会在循环中让 i 依次接收 li 中的元素的值.

... print i

...

1

2

3

这个输出和 print "\n".joni(li) 一样.

如果要象其它语言中一样. 让for做计数使用. 可以用如下的办法:

>>> for i in range(len(li)) : print li[i]

...

1

2

3

要用 for 来遍历 Dictionary . 如下:

>>> d = {1:"abc", 2:"def"}

>>> for k, v in d.items() : print "%d = %s" % (k, v)

...

1 = abc

2 = def

上边的打印结果和 print "\n".join(["%d = %s" % (k, v) for k, v in d.items()]) 一样.

6.4 使用 sys.modules

在Python中. modules是定义在sys模块中的一个全局的字典对象.

一旦我们import一个模块. 就可以在 sys.modules 中找到它.

每个类都拥有一个内置的"类属性" : __module__ . 其值为定义该类的模块的名字.

6.5 与Directory共事

在os.path所引用的模块中有几个操作文件和目录的函数.如:

>>> import os

>>> os.path.join("c:\music", "mahadeva.mp3")

这个join函数用来将一个或多个字符串构造成一个路径名.

'c:\music\mahadeva.mp3'

>>> os.path.expanduser("~")

expanduser函数用'~'作参数时. 返回当前用户根目录.

'c:\Documents and Settings\mpilgrim\My Documents'

>>> (filepath, filename) = os.path.split("c:\music\a.mp3")

split函数用来将一个路径名分成目录名和文件名.它返回的是一个tuple. 用返回的tuple对(filepath, filename)赋值.

>>> filepath

'c:\music'

>>> filename

'a.mp3'

>>> (a, b) = os.path.splitext("a.mp3")

类似的. 这个splitext用来将一个全文件名分成文件名和扩展名两部分.

>>> a

'a'

>>> b

'.mp3'

列出目录用:

>>> os.listdir("c:\")

这个函数将返回一个字符串list. 包括所有的文件和文件夹的名字.

['boot.ini', 'CONFIG.SYS', 'AUTOEXEC.BAT', 'java', 等]

要判断一个字符串路径到底是一个文件还是一个文件夹. 用os.path模块中的isfile() 或isdir().如:

>>> [f for f in os.listdir("c:") if os.path.isdir(os.path.join("c:", f))]

这样就打印出c中所有文件夹名构成的list.

如果要在目录操作中使用通配符.可以如下:

>>> import glob

要先导入 glob 模块

>>> glob.glob('c:\music\*.mp3')

则返回的list中包含了该目录下所有的 .mp3 后缀的文件名.

Python文件和异常处理

6. 异常和文件处理- Dive Into Python 6.1 异常处理. Python的异常用 try except finally 来处理. 并且except后还可以跟else . 引发异常用raise 如果抛出的异常没有被处理. 在Python IDE中是显示一些红色的信息. 在真正的Python程序运行时. 会导致程序终止. 在以前我们已经见到过一下几种异常: 在Dictionary 中如果使用的key 不存在. 会引发KeyError异常.如: >>> d = {"a":1, "b":"abc"} >>> d["c"] Traceback (most recent call last): File "", line 1, in KeyError: 'c' 搜索列表中不存在的值. 将引发ValueError异常.如: >>> li = [1,2] >>> li.index(3) Traceback (most recent call last): File "", line 1, in ValueError: list.index(x): x not in list 对应的. 若用下标来引用列表中的元素. 若下标出界. 会产生IndexError异常.如: >>> li[2] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range 调用不存在的方法. 会引发AttributeError异常. 引用不存在的变量. 引发NameError异常. 未强制转化就混用数据类型. 引发TypeError异常. 文件操作错误引发的IOError.如: try: fsock = open("/notthere") except IOError: print "The file dose not exits..." else: print "open the file." print "this line will always print" 注意上边的代码中: open是一个内置函数. 用来打开文件. 并返回一个文件对象. try except 后边可以跟else 语句. 当没有捕捉到指定的异常时. 执行else 语句. 导入一个模块时. 若模块不存在. 会引发ImportError异常. 还可以定义自己的异常类. 定义时让它继承内置的Exception类. 然后在需要抛出异常时用raise抛出.

Python OS模块(常见文件操作示例)

Python常见文件操作示例 2. 3. os.path 模块中的路径名访问函数 4. 分隔 5. basename() 去掉目录路径, 返回文件名 6. dirname() 去掉文件名, 返回目录路径 7. join() 将分离的各部分组合成一个路径名 8. split() 返回(dirname(), basename()) 元组 9. splitdrive() 返回(drivename, pathname) 元组 10. splitext() 返回(filename, extension) 元组 11. 12. 信息 13. getatime() 返回最近访问时间 14. getctime() 返回文件创建时间 15. getmtime() 返回最近文件修改时间 16. getsize() 返回文件大小(以字节为单位) 17. 18. 查询 19. exists() 指定路径(文件或目录)是否存在 20. isabs() 指定路径是否为绝对路径 21. isdir() 指定路径是否存在且为一个目录 22. isfile() 指定路径是否存在且为一个文件 23. islink() 指定路径是否存在且为一个符号链接 24. ismount() 指定路径是否存在且为一个挂载点 25. samefile() 两个路径名是否指向同个文件 26. 27. os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false 28. os.path.isfile(name):判断name是不是一个文件,不存在name也返回false 29. os.path.exists(name):判断是否存在文件或目录name 30. os.path.getsize(name):获得文件大小,如果name是目录返回0L 31. os.path.abspath(name):获得绝对路径 32. os.path.normpath(path):规范path字符串形式 33. os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) 34. os.path.splitext():分离文件名与扩展名 35. os.path.join(path,name):连接目录与文件名或目录 36. os.path.basename(path):返回文件名 37. os.path.dirname(path):返回文件路径 38. 39. 40. os模块中的文件操作: 41. os 模块属性

Python中的异常

python的try语句有两种风格 一:种是处理异常(try/except/else) 二:种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 try: <语句>#运行别的代码 except<名字>: <语句>#如果在try部份引发了'name'异常 except<名字>,<数据>: <语句>#如果引发了'name'异常,获得附加的数据 else: <语句>#如果没有异常发生 try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except 子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。 2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。 3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。 try/finally风格 try: <语句> finally: <语句>#退出try时总会执行 python总会执行finally子句,无论try子句执行时是否发一异常。 1、如果没有发生异常,python运行try子句,然后是finally子句,然后继续。 2、如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句。 当你想无论是否发生异常都确保执行某些代码时,try/finally是有用的。 这个在打开文件的时候有用finally总是在最后close()文件

Python 错误和异常小结

原文链接https://www.doczj.com/doc/081532426.html,/sinchb/article/details/8392827 事先说明哦,这不是一篇关于Python异常的全面介绍的文章,这只是在学习Python 异常后的一篇笔记式的记录和小结性质的文章。什么?你还不知道什么是异常,额... 1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。 python标准异常 异常名称描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 SystemExit Python 解释器请求退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零(所有数据类型)

AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 KeyboardInterrupt 用户中断执行(通常是输入^C) LookupError 无效数据查询的基类 IndexError 序列中没有没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象(没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError 一般的运行时错误 NotImplementedError 尚未实现的方法 SyntaxError Python 语法错误 IndentationError 缩进错误 TabError Tab 和空格混用 SystemError 一般的解释器系统错误 TypeError 对类型无效的操作 ValueError 传入无效的参数 UnicodeError Unicode 相关的错误

python文件和目录操作方法大全

python文件和目录操作方法大全(含实例) 这篇文章主要介绍了python文件和目录的操作方法,简明总结了文件和目录操作中常用的模块、方法,并列举了一个综合实例,需要的朋友可以参考下 一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件和目录名:os.listdir() 3.函数用来删除一个文件:os.remove() 4.删除多个目录:os.removedirs(r“c:\python”) 5.检验给出的路径是否是一个文件:os.path.isfile() 6.检验给出的路径是否是一个目录:os.path.isdir() 7.判断是否是绝对路径:os.path.isabs() 8.检验给出的路径是否真地存:os.path.exists() 9.返回一个路径的目录名和文件名:os.path.split() eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt') 10.分离扩展名:os.path.splitext() 11.获取路径名:os.path.dirname() 12.获取文件名:os.path.basename() 13.运行shell命令: os.system() 14.读取和设置环境变量:os.getenv() 与os.putenv() 15.给出当前平台使用的行终止符:os.linesep Windows使用'\r\n',Linux使用'\n'而Mac使用'\r' 16.指示你正在使用的平台:https://www.doczj.com/doc/081532426.html, 对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix' 17.重命名:os.rename(old,new) 18.创建多级目录:os.makedirs(r“c:\python\test”) 19.创建单个目录:os.mkdir(“test”) 20.获取文件属性:os.stat(file) 21.修改文件权限与时间戳:os.chmod(file) 22.终止当前进程:os.exit() 23.获取文件大小:os.path.getsize(filename) 二、文件操作方法大全: 1.os.mknod("test.txt") #创建空文件 2.fp = open("test.txt",w) #直接打开一个文件,如果文件不存在则创建文件 3.关于open 模式: 复制代码代码如下: w:以写方式打开, a:以追加模式打开(从EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开(参见w ) a+:以读写模式打开(参见a ) rb:以二进制读模式打开

PYTHON文件操作

一、python文件操作 1.import glob目录操作 查看目录内容: filelist=glob.glob(‘*.*’) filelist=glob.glob(‘c:\*’) 查看指定类型的文件: filelist=glob.glob(‘c:\*.sys’) 为了显示一个目录中的全部文件,可以使用如下所示的os.listdir函数: files=os.listdir(r’C:\hpl\scripting\src\py\intro’)#适用于Windows files=os.listdir(’/home/hpl/scripting/src/py/intro’)#适用于Unix files=os.listdir("d:\python26") files=os.listdir("c:\\") #跨平台版本: files=os.listdir(os.path.join(os.environ[’scripting’],’src’,’py’,’intro’)) files=os.listdir(os.curdir)#当前目录中的所有文件 files=glob.glob(’*’)+glob.glob(’.*’) 二、测试文件类型 我们知道,文件名、目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名、目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfile函数、isdir函数和islink函数来达成我们的目标,如下所示: print myfile,’是一个’, if os.path.isfile(myfile): print’plain file’ if os.path.isdir(myfile): print’directory’ if os.path.islink(myfile): print’link’ 您还可以查找文件的日期及其大小: time_of_last_access=os.path.getatime(myfile) time_of_last_modification=os.path.getmtime(myfile) size=os.path.getsize(myfile) 三文件时间 time_of_last_access=os.path.getatime(myfile) time_of_last_modification=os.path.getmtime(myfile) size=os.path.getsize(myfile) 这里的时间以秒为单位,并且从1970年1月1日开始算起。为了获取以天为单位的最后访问日期,可以使用下列代码: import time#time.time()返回当前时间 age_in_days=(time.time()-time_of_last_access)/(60*60*24) 四文件详细信息 为了获取文件的详细信息,可以使用os.stat函数和stat模块中的其它实用程序来达到目的,如下: import stat

python文件操作笔记

python文件操作笔记 文件操作:长期保存数据以便重复使用、修改和共享,必须将数据以文件的形式存储到外部存储介质或云盘中。按文件中数据的组织形式可以把文件分文本文件和二进制文本。 1.文本文件 文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符"\n"结尾。常规字符串是指记事本或其他文本编辑器能正常显示,编辑并且能够直接阅读和理解的字符串,如英文、汉字、数字字符串。 2.二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通文本处理软件直接编辑,通常需要专门的软件才能显示、修改编辑或执行。常见的图形文件、音频文件、可执行文件、资源文件、各种数据库文件等属于二进制文件。 python内置了文件对象,通过open()函数即可以指定的模式打开指定文件或创建文件对象,格式如下: 文件对象名=open (文件名,[打开方式,缓冲区]) 文件打开模式文件对象属性 模说明属性

r 读模式 closed 判断文件是否关闭,若文件关闭,则返 回True w 写模式 mode 返回文件的打开模式 a 追加模式 name 返回文件的名称 b 二进制模式(可与其他模式组合 使用) + 读写模式(可与其他模式组合使 用) 文件对象常用方法: 方法 功能说明 read([size]) 从文件中读取size 个字节 readline() 从文本文件中读取一行内容作为结果返回 readlines() 从文本文件中的每行文本作为一个字符串存入列表中,返回 该列表 seek(offset[,whence]) 把文件指针移动到新的位置,offset 表示相对于whence 的 位置 tell() 返回文件指针的当前位置 write(s) 把字符串s 的内容写入文件 writelns() 把字符串列表写入文本文件,不添加换行符

Python 错误和异常小结

原文链接事先说明哦,这不是一篇关于Python异常的全面介绍的文章,这只是在学习Python异常后的一篇笔记式的记录和小结性质的文章。什么你还不知道什么是异常,额... 异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。 python标准异常

2.捕获异常 Python完整的捕获异常的语句有点像: 1.try: 2.try_suite 3.except Exception1,Exception2,...,Argument: 4.exception_suite 5....... #other exception block 6.else: 7.no_exceptions_detected_suite 8.finally: 9.always_execute_suite 额...是不是很复杂当然,当我们要捕获异常的时候,并不是必须要按照上面那种格式完全写下来,我们可以丢掉else语句,或者finally语句;甚至不要exception语句,而保留finally语句。额,晕了好吧,下面,我们就来一一说明啦。 语句 try_suite不消我说大家也知道,是我们需要进行捕获异常的代码。而except语句是关键,我们try捕获了代码段try_suite里的异常后,将交给except来处理。 try...except语句最简单的形式如下: 1.try: 2.try_suite 3.except: 4.exception block

【IT专家】Python文件操作及文件夹遍历

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 Python文件操作及文件夹遍历 2013/12/07 808 ?os.getcwd() 得到当前工作目录,即当前Python脚本工作的目录路径os.listdir() 返回指定目录下的所有文件和目录名os.remove() 函数用来删除一个文件os.removedirs(r“c:\python”)删除多个目录os.path.isfile() 检验给出的路径是否是一个文件os.path.isdir() 检验给出的路径是否是一个目录os.path.isabs() 判断是否是绝对路径os.path.exists() 检验给出的路径是否真地存os.path.split() 返回一个路径的目录名和文件名eg: os.path.split(‘/home/swaroop/byte/code/poem.txt’) 结果:(‘/home/swaroop/byte/code’, ‘poem.txt’) os.path.splitext() 分离扩展名os.path.dirname() 获取路径名os.path.basename() 获取文件名os.system() 运行shell命令os.getenv() 与os.putenv()读取和设置环境变量os.linesep Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’ 给出当前平台使用的行终止符https://www.doczj.com/doc/081532426.html, 对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’指示你正在使用的平台os.rename(old,new)重命名os.makedirs(r“c:\python\test”)创建多级目录os.mkdir(“test”)创建单个目录os.stat(file)获取文件属性os.chmod(file)修改文件权限与时间戳os.exit()终止当前进程os.path.getsize(filename)获取文件大小 ?文件操作:os.mknod(“test.txt”) 创建空文件fp = open(“test.txt”,w) 直接打开一个文件,如果文件不存在则创建文件 ?关于open 模式: ?w以写方式打开,a以追加模式打开(从EOF 开始, 必要时创建新文件)r+以读写模式打开w+以读写模式打开(参见w )a+以读写模式打开(参见 a )rb以二进制读模式打开wb以二进制写模式打开(参见w )ab以二进制追加模式打开(参见a )rb+以二进制读写模式打开(参见r+ )wb+以二进制读写模式打开(参见w+ )ab+以二进制读写模式打开(参见a+ ) ? fp.read([size])#size为读取的长度,以byte为单位

Python异常处理实例解读,Python中的断言

Python异常处理实例解读 #Python异常处理实例解读,Python中的断言 #断言是一个健全检查,可以在完成对程序的测试后打开或关闭。 #测试表达式,如果结果为false,则会引发异常。 #assert语句,assert Expression[, Arguments] #程序解读,测试输入值是否合适,表达式为false,Python会引发AssertionError异常。def test1(ti):#函数块以关键字def开头,后跟函数名和小括号(()) assert (ti > 0),"这个值不合适!"#如果表达式为false,Python会引发AssertionError异常。 return (ti+5)+32#语句return [expression]用于退出一个函数,可选地将一个表达式传回给调用者 print (test1(273))#ti=273测试输出 print (test1(-300))#ti=-300测试输出 运行结果! 310 Traceback (most recent call last): File "f:\张铁刚资源库\python\经验谈\103python异常处理实例解读\python异常处理实例解读.py", line 9, in print (test1(-300)) File "f:\张铁刚资源库\python\经验谈\103python异常处理实例解读\python异常处理实例解读.py", line 6, in test1 assert (ti > 0),"这个值不合适!" AssertionError: 这个值不合适! >>>

python文件目录操作

[1.os] 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件:os.listdir(path) 4.获取当前工作目录:os.getcwd() 5.改变工作目录:os.chdir(newdir) 6.创建多级目录:os.makedirs(r"c:/python /test") 7.创建单个目录:os.mkdir("test") 8.删除多个目录:os.removedirs(r"c:/python") #删除所给路径最后一个目录下所有空目录。 9.删除单个目录:os.rmdir("test") 10.获取文件属性:os.stat(file) 11.修改文件权限与时间戳:os.chmod(file) 12.执行操作系统命令:os.system("dir") 13.启动新进程:os.exec(), os.execvp() 14.在后台执行程序:osspawnv() 15.终止当前进程:os.exit(), os._exit() 16.分离文件名:os.path.split(r"c:/python/hello.py") --> ("c://python", "hello.py") 17.分离扩展名:os.path.splitext(r"c:/python/hello.py") --> ("c://python//hello", ".py") 18.获取路径名:os.path.dirname(r"c:/python/hello.py") --> "c://python" 19.获取文件名:os.path.basename(r"r:/python/hello.py") --> "hello.py" 20.判断文件是否存在:os.path.exists(r"c:/python/hello.py") --> True 21.判断是否是绝对路径:os.path.isabs(r"./python/") --> False

python 文件时间操作

一 按时间创建文件 二 获取环境变量、进程、父进程 三、获取当前文件的创建、修改、访问时间 一 按时间创建文件 源码 # 截图方式二 # coding=utf‐8 import os import time # 当前年月日时分秒时间 2020‐01‐16‐10_11_49 picture_time = time.strftime("%Y‐%m‐%d‐%H_%M_%S", time.localtime(time.time())) #当前年月日 2020‐01‐16 directory_time = time.strftime("%Y‐%m‐%d", time.localtime(time.time())) print('当前年月日时分秒时间:'+ picture_time) print("当前年月日:"+directory_time) # 获取当前文件目录 print('当前文件目录:'+os.getcwd()) # 获取到当前文件的目录,并检查是否有 directory_time 文件夹,如果不存在则自动新建 directory_time 文件 try: File_Path = os.getcwd() + '\\' + directory_time + '\\' print(os.path) #exists判断文件路径是否存在 if not os.path.exists(File_Path): os.makedirs(File_Path) print("目录新建成功:%s" % File_Path) else: print("目录已存在!!!") except BaseException as msg: print("新建目录失败:%s" % msg) #切换目录 os.chdir("D:/git") print('切换后的目录位置:'+os.getcwd()) 源码执行控制台打印: 当前年月日时分秒时间:2020-01-16-11_19_12 当前年月日:2020-01-16 当前文件目录:D:\git\gongcheng 目录新建成功:D:\git\gongcheng\2020-01-16 切换后的目录位置:D:\git

python文件读写

python进行文件读写的函数是open或file file_handler = open(filename,,mode) Table mode 模式描述 r 以读方式打开文件,可读取文件信息。 w 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容 a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建 r+ 以读写方式打开文件,可对文件进行读和写操作。w+ 消除文件内容,然后以读写方式打开文件。 a+ 以读写方式打开文件,并把文件指针移到文件尾。 b 以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。 Table 文件对象方法 方法描述 f.close() 关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。 f.fileno() 获得文件描述符,是一个数字 f.flush() 刷新输出缓存 f.isatty() 如果文件是一个交互终端,则返回True,否则返回False。 f.read([count]) 读出文件,如果有count,则读出count个字节。 f.readline() 读出一行信息。 f.readlines() 读出所有行,也就是读出整个文件的信息。 f.seek(offset[,wh ere]) 把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值;1表示当前位置;2表示文件结尾。 f.tell() 获得文件指针位置。 f.truncate([size]) 截取文件,使文件的大小为size。 f.write(string) 把string字符串写入文件。 f.writelines(list) 把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。 示例文件如下: #-*- encoding:UTF-8 -*- filehandler = open('c:\\111.txt','r') #以读方式打开文件,rb为二进制方式(如图片或可执行文件等) print 'read() function:' #读取整个文件 print filehandler.read() print 'readline() function:' #返回文件头,读取一行 filehandler.seek(0)

Python文件操作读写文件

最基本的文件操作当然就是在文件中读写数据。这也是很容易掌握的。现在打开一个文件以进行写操作: 1. fileHandle = open ( 'test.txt', 'w' ) fileHandle = open ( 'test.txt', 'w' ) …w'是指文件将被写入数据,语句的其它部分很好理解。下一步就是将数据写入文件: 1. fileHandle.write ( 'This is a test.\nReally, it is.' ) fileHandle.write ( 'This is a test.\nReally, it is.' ) 这个语句将“This is a test.”写入文件的第一行,“Really, it is.”写入文件的第二行。最后,我们需要做清理工作,并且关闭文件: 1. fileHandle.close() fileHandle.close() 正如你所见,在Python的面向对象机制下,这确实非常简单。需要注意的是,当你再次使用“w”方式在文件中写数据,所有原来的内容都会被删除。如果想保留原来的内容,可以使用“a”方式在文件中结尾附加数据: 1. fileHandle = open ( 'test.txt', 'a' ) 2. fileHandle.write ( '\n\nBottom line.' ) 3. fileHandle.close() fileHandle = open ( 'test.txt', 'a' ) fileHandle.write ( '\n\nBottom line.' ) fileHandle.close() 然后,我们读取test.txt,并将内容显示出来: 1. fileHandle = open ( 'test.txt' ) 2. print fileHandle.read() 3. fileHandle.close() fileHandle = open ( 'test.txt' ) print fileHandle.read() fileHandle.close() 以上语句将读取整个文件并显示其中的数据。我们也可以读取文件中的一行: 1. fileHandle = open ( 'test.txt' )

Python专题——异常和工具

1.异常基础 try/except:捕捉由python或程序员引起的异常并恢复。 try/finally:无论异常是否发生,执行清理语句 raise:手动在代码中触发异常 assert:有条件的在代码中触发异常 with/as:在python2.6和后续版本中实现环境管理器 1.1为什么使用异常? 异常处理对于错误处理、终止动作和事件通知有用。它可以简化特殊情况的处理,并且可以用来实现替代的控制流程。一般来讲,异常处理还可以减少程序所需的检测错误代码的数量,因为所有的错误都由处理器来过滤,你可能不需要测试每个操作的输出。 1.2异常的角色 错误处理 事件通知 特殊情况处理 终止行为 非常规控制流程 2.异常处理 2.1默认异常处理器 如果代码没有刻意的捕捉代码异常,它将会一直向上返回程序顶层,并启用默认的异常处理器:就是打印标准出错消息。这些消息引发的异常还有堆栈跟踪:也就是异常发生时激活的程序行和函数清单。 def fetcher(obj, index): return obj[index] x = 'spam' fetcher(x, 4) output: Traceback (most recent call last):

File "C:\E\workspace\PythonLearning\chapter17\exc.py", line 6, in fetcher(x, 4) File "C:\E\workspace\PythonLearning\chapter17\exc.py", line 2, in fetcher return obj[index] IndexError: string index out of range 任何未捕获的异常都流入默认的异常处理器,python在程序的最顶端提供它。这个处理器打印类似的出错消息,并且退出程序。 2.2捕获异常:try/except/else语句 try: fetcher(x, 4) except IndexError: print'got exception' try首行底下的代码块代表此语句的主要动作:试着执行程序代码。Except子句定义了try代码块内引发的异常的处理器,而else子句则是提供没发生异常时要执行的处理器。 ●如果try代码块语句执行时的确发生了异常,python就跳回try,执行第一个符合引发 异常的except子句下面的语句。当except代码块执行后(除非except代码块又引发了另一异常),控制权就会到整个try语句后继续执行。 ●如果异常发生在try代码块内,没有符合的except子句,异常就会向上传递到程序中的 之前进入的try中,或者如果它是第一条这样的语句,就传递到这个进程的顶层(这回使Python终止这个程序并打印默认的出错消息)。 ●如果try首行底下执行的语句没有发生异常,python就会执行else下的语句(如果有的 话),控制权会在整个try语句下继续。

Python对Excel操作教程(精编文档).doc

【最新整理,下载后即可编辑】 Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt和xlutils模块。另外还演示了如何通过Tcl tcom 包对excel操作。 关键字: Python、Excel、xlrd、xlwt、xlutils、TCl、tcom 1Python简介 Python是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块。

与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。 2Python安装 Python目前的版本已经更新到3.4.0,本文使用的版本为2.7.5,所有的版本都可以在python官网https://www.doczj.com/doc/081532426.html,/下载,至于2.x和3.x版本的具体区别也可以在官网查看。 从官网下载了python 2.7.5安装文件python-2.7.5.msi后,直接双击就可以安装python了,可以选择安装路径,我改为C:\Python2.7.5\了,然后一路next就完成安装了,安装完成后在C盘下就多了一个文件夹Python2.7.5。 Python也是一种实时交互语言,可以通过自带的IDLE编写python语句并反馈回显信息,可以通过图1方式调出python IDLE。

黑马程序员:python基础班笔记之文件和目录常用命令

黑马程序员:python基础班笔记之文件和目录常用命令目标 查看目录内容 o ls 切换目录 o cd 创建和删除操作 o touch o rm o mkdir 拷贝和移动文件 o cp o mv 查看文件内容 o cat o more o grep 其他 o echo

o重定向> 和>> o管道| 01. 查看目录内容 1.1 终端实用技巧 1> 自动补全 ?在敲出文件/目录/命令的前几个字母之后,按下tab 键 o如果输入的没有歧义,系统会自动补全 o如果还存在其他文件/目录/命令,再按一下tab 键,系统会提示可能存在的命令 2> 曾经使用过的命令 ?按上/下光标键可以在曾经使用过的命令之间来回切换 ?如果想要退出选择,并且不想执行当前选中的命令,可以按ctrl + c 1.2 ls 命令说明 ?ls 是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir 命令 Linux 下文件和目录的特点 ?Linux 文件或者目录名称最长可以有256 个字符

?以 . 开头的文件为隐藏文件,需要用-a 参数才能显示 ?.代表当前目录 ?..代表上一级目录 1.3 ls 常用选项 参数含义 -a 显示指定目录下所有子目录与文件,包括隐藏文件 -l 以列表方式显示文件的详细信息 -h 配合-l 以人性化的方式显示文件大小 计算机中文件大小的表示方式(科普) 单位英文含义 字节 B(Byte)在计算机中作为一个数字单元,一般为8 位二进制数千K(Kibibyte) 1 KB = 1024 B,千字节(1024 = 2 ** 10) 兆M(Mebibyte) 1 MB = 1024 KB,百万字节 千兆 G(Gigabyte) 1 GB = 1024 MB,十亿字节,千兆字节 太T(Terabyte)1 TB = 1024 GB,万亿字节,太字节 拍P(Petabyte)1 PB = 1024 TB,千万亿字节,拍字节 艾E(Exabyte) 1 EB = 1024 PB,百亿亿字节,艾字节 泽Z(Zettabyte) 1 ZB = 1024 EB,十万亿亿字节,泽字节 尧Y(Yottabyte) 1 YB = 1024 ZB,一亿亿亿字节,尧字节

python异常处理

python异常处理 #!/usr/bin/python import traceback try: 1/0 #except Exception,e: # print traceback.format_exc() except Exception as e: print e #!/usr/bin/python import traceback try: 1/0 #except Exception,e: # print traceback.format_exc() except Exception , e: print e Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在exceptions模块中定义。Python自动将所有异常名称放在内建命名空间中,所以程序不必导入exceptions模块即可使用异常。一旦引发而且没有捕捉SystemExit异常,程序执行就会终止。如果交互式会话遇到一个未被捕捉的SystemExit异常,会话就会终止。 方式一:try语句: 1使用try和except语句来捕获异常 try: block except [exception,[data…]]: block try: block except [exception,[data...]]: block else: block 该种异常处理语法的规则是:

· 执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。 · 如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。 · 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。 · 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 · 如果没有发生异常,则执行else块代码。 例: try: f = open(“file.txt”,”r”) except IOError, e: print e 捕获到的IOError错误的详细原因会被放置在对象e中,然后运行该异常的except代码块 捕获所有的异常 try: a=b b=c except Exception,ex: print Exception,":",ex 使用except子句需要注意的事情,就是多个except子句截获异常时,如果各个异常类之间具有继承关系,则子类应该写在前面,否则父类将会直接截获子类异常。放在后面的子类异常也就不会执行到了。 2 使用try跟finally: 语法如下: try: block finally: block 该语句的执行规则是: · 执行try下的代码。 · 如果发生异常,在该异常传递到下一级try时,执行finally中的代码。 · 如果没有发生异常,则执行finally中的代码。 第二种try语法在无论有没有发生异常都要执行代码的情况下是很有用的。例如我们在python中打开一个文件进行读写操作,我在操作过程中不管是否出现异常,最终都是要把该文件关闭的。 这两种形式相互冲突,使用了一种就不允许使用另一种,而功能又各异

相关主题
文本预览
相关文档 最新文档