首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python下几种打开文件的方式(你习惯

就可以打开一个文件进行操作。第二个参数为对文件的操作方式,’w’是写文件,已存在的同名文件会被清空,不存在则会创建一个;’r’是读取文件,不存在会报错;’a’是在文件尾部添加内容,不存在会创建文件,存在则直接在尾部进行添加;还有’wb’是写二进制文件;’rb’是读取二进制文件,比如图片之类的。 但是这种方式其实不是最好的打开文件的方式,这种方式可能会有这样几个问题: 1、未指定文件编码格式,如果文件编码格式与当前默认的编码格式不一致,那么文件内容的读写将出现错误。 2、如果读写文件有错误,会导致文件无法正确关闭。因为哪怕在后面有

01

python iterator(迭代器)

迭代:重复做一件事 iterable(可迭代)对象:支持“每次仅返回自身所包含的其中一个元素”的对象 iterable对象实现了__iter__方法     序列类型,如:list、str、tuple     非序列类型,如:dict、file     用户自定义的一些包含了__iter__()或__getitem__方法的类           用dir(object)时,只要有__iter__()方法或__getitem__方法都是iterable对象。     object.__iter__()   每运行一次,都返回一个迭代器对象的内存地址     例:i1=list1.__iter__()       返回一个迭代器对象            i1.next()            i1.next()            .... 迭代器(iterator)     迭代器又称为游标(cursor),它是程序设计的软件设计模式,是一种可在容器物件(container)上实现元素遍历的接口。     迭代器是一种特殊的数据结构,当然在python中,它也是以对象的形式存在的。简单理解方式:对于一个集体中的每一个元素,想要执行遍历,那么针对这个集体的迭代器就定义了遍历该集体中每一个元素的顺序或方法。     迭代器本身是不可逆的。     可以使用一个“可迭代对象”的__iter__()方法生成一个“迭代器对象”            In [31]: print list1            [(1, 2), (3, 4), (5, 6)]            In [32]: iterable1=list1.__iter__()            In [33]: iterable1.next()            Out[33]: (1, 2)            In [34]: iterable1.next()            Out[34]: (3, 4)            In [35]: iterable1.next()            Out[35]: (5, 6)     也可以使用iter函数生成一个迭代器对象。用法: iter(container_object)            In [37]: iterable1=iter(list1)            In [38]: iterable1.next()            Out[38]: (1, 2)            In [39]: iterable1.next()            Out[39]: (3, 4)            In [40]: iterable1.next()            Out[40]: (5, 6) 在python中,迭代器是遵循迭代协议的对象;使用iter()函数可以从任何序列对象中生成一个迭代器对象 若要使用迭代器,需要在类中定义next()方法(python3中是 __next__()) 要使得迭代器指向下一个元素,则使用成员函数next() (在python3中,是函数next(),而非成员函数) 当没有元素时,则触发StopIteration异常     for循环可用在任何可迭代对象:     for循环开始时,会通过迭代协议传递给iter()内置函数,从而能够从可迭代对象中获得一个迭代器,返回的对象含有需要的next方法。 python的列表解析:     根据一个已存在列表再生成另一个新列表时,可以使用列表解析功能。     列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中。     语法:[expression for iter_var in iterable_object]                [expression for iter_var in iterable_object if condition_expression]

02

python实用小工具介绍

一、秒级启动一个HTTP下载服务器 在实际工作中,时不时会有这样的一个需求:将文件传给其他同事。将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输。但是,如果需要传送的文件较多,那么,操作起来就会比较麻烦。此外,如果文件在远程的服务器上,你要将文件传给同事,则需要先将远程服务器的文件下载到本地,然后再通过聊天工具传给同事。再或者,你并不是特别清楚要传哪几个文件给同事,所以,你们需要进行来回的交流。交流的时间成本是比较高的,会降低办事效率。此时,你们需要更加高效的方法。这个时候,如果你知道Python内置了一个下载服务器就能够显著提升效率了。例如,你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目录,然后执行下面的命令启动一个下载服务器: 本地有个一文件夹,想共享给局域网同事下载一些里面的文件,可以使用python的如下命令。 • python2的用法如下: python -m SimpleHTTPServer • python3的用法如下: python3 -m http.server --cgi 以上两种方法默认端口8000,可以制定端口,例如指定端口45678: python -m SimpleHTTPServer 45678 python3 -m http.server --cgi 45678

02
领券