重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
注:在使用以上 mode 打开文件的时候,如果增加了b 模式,表示以二进制方式打开
创新互联公司专业为企业提供杜尔伯特网站建设、杜尔伯特做网站、杜尔伯特网站设计、杜尔伯特网站制作等企业网站建设、网页设计与制作、杜尔伯特企业网站模板建站服务,十余年杜尔伯特做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。lala = file("accounts.txt","r")
#打开文件
for line in lala.readlines():
user, passwd = line.strip('\n').split()
print user,passwd
f.close
关闭文件
关闭文件,会将内存的内容写入文件中(内容一般不超过1024个字符就存在内存中)
f =file(“feitian.txt”,’a’)
f.write(‘\nsecond line’)
一般不会换行,需要手动换行
在Linux中打开一个终端其实就是创建一个tty文件
一个迭代方法,和readline差不多,不过他读到结尾的时候会报一个错误
注意:这里可以分析日志,每次只从上次处理的地方开始分析
f.seek(offset[,whence]),函数,offset表示移动多少字节,大于零向右偏,小于零向左偏。whence为1的时候表示相对于当前位置移动的,当是2的时候从文件的末尾往后移动,但不一定所有的平台都支持;为0的时候表示从开头往后移动.
找到文件的指针的位置
从开头截取到100的内容,他与文件的指针没有关系。其他的内容都会被删除。
给文件中写入多行
读一行打印一行
for i in f.readlines()
print i
#显示文件中所有的行,但忽略以#号开头的行。
f = open("world.md","a+")
for i in f :
i = i.strip()
if not i.startswith("#"):
print i
f.close()
# 下面为更高级一点的代码,在这段程序执行完毕之后自动关闭文件
with open("world.md","a+") as f :
for i in f :
i = i.strip()
if not i.startswith("#"):
print i
注:私有方法在外部访问
在类的内部定义中,所有以双下划线开始的名字都被翻译成前面加单下划线和类名的形式。
class Secretive(object):
def __inaccessible(self):
print "Bet you can't see me ..."
def accessible(self):
print "The secret message is :"
self.__inaccessible()
s = Secretive()
print Secretive._Secretive__inaccessible
s._Secretive__inaccessible()
Bet you can't see me ...
#检查继承
isubclass()
检查一个对象是否为一个类的实例
isinstance()
这里在写一个继承的例子,在子类中重写了构造方法时
#将类都变成新式类,不管是经典还是新式,都算新式类
__metaclass__ = type
class Bird:
def __init__(self):
self.hungry = True
def eat(self):
if self.hungry:
print "feitian...."
self.hungry = False
else:
print "No.thinks"
class BirdSing(Bird):
def __init__(self):
super(BirdSing,self).__init__()
# Bird.__init__(self)
self.sound = 'squawk'
def sing(self):
print self.sound
s = BirdSing()
s.sing()
s.eat()
s .eat()
基本的序列和映射规则
序列和映射是对象的集合
__str__(self)
把一个类的实例变成str。
默认在找到,设置和删除的时候会调用相应的构造方法
子类化列表,字典和字符串
class CounterList(list):
def __init__(self,*args):
super(CounterList, self).__init__(*args)
self.counter = 0
def __getitem__(self, index):
self.counter += 1
return super(CounterList, self).__getitem__(index)
c1 = CounterList(range(10))
print c1
c1.reverse()
print c1
del c1[3:6]
print c1
print len(c1)
c1[4]+c1[2]
print c1.counter
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
#有关try except异常:
try:
print 'try...'
r = 10 / 0
print 'result:', r
except ZeroDivisionError, e:
print 'except:', e
finally:
print 'finally...'
print 'END'
except 语句跟着两个东西,前面是异常的类型,后面的是 异常对象,包含了一些异常信息
异常继承
http://blog.csdn.net/dragonfli_lee/article/details/52350793
http://www.cnblogs.com/Lival/p/6203111.html
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
Python定义了__str__() 和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员
try:
raise MyError(2*2)
except MyError as e:
print 'My exception occurred, value:', e.value
##另一个代码
a=10
b=0
try:
c=a/b
print c
except ZeroDivisionError,e:
print e.message
print "done"
#处理一组异常,指的是输入或者输出两组和IOError这个异常类型有关
a=10
b=0
try:
c = b/ a
print c
except (IOError ,ZeroDivisionError),x:
print x
else:
print "no error"
print "done"
#有关try finally异常
无论异常是否发生,在程序结束前,finally中的语句都会被执行。
#Python中的有关拦截的东西
class Rectangle(object):
def lala(self):
self.width = width
def __setattr__(self,width, value):
print "想改,不存在的"
def __delattr__(self, width):
print "想删除,也不存在"
def __getattr__(self,lalala):
print "你有这个属性吗"
def __getattribute__(self,name):
print "想看知道也不存在的"
feitian = Rectangle()
feitian.lala
feitian.width = 1
del feitian.width
feitian.lalala
想看知道也不存在的
想改,不存在的
想删除,也不存在
想看知道也不存在的
def flatten(nested):
try:
try:nested + ''
except TypeError:pass
else :
raise TypeError
for sublist in nested:
for element in flatten(sublist):
yield element
except TypeError:
yield nested
t = list(flatten(['1',['bar',['baz']]]))
print t
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。