python从入门到入坟 五(吕万友)

来源:互联网 发布:oracle启动数据库命令 编辑:程序博客网 时间:2024/06/08 06:15

python文件写入也可以进行网站爬虫, 下面例子 是将http://www.baidu.com的代码写入文件中,然后再读取到出来进行打印。

# /usr/bin/pythonfrom urllib import request# 从百度读取数据存入aaa.txt中response = request.urlopen("http://www.baidu.com/")output = open("C:/Users/lenovo/Desktop/aaa.txt", "w")output.write(str(response.read()))output.close()#从aaa.txt中存入数据打印到命令行read = open("C:/Users/lenovo/Desktop/aaa.txt", "r")for line in read:    print(line)

python的File 和OS这边暂时不做处理,相关的异常也在数据解析过程中再慢慢总结。因为目前主要是要做数据解析部分。

众所周知,python是面向对象的语言,因此对象的使用也很关键。这我对对象的基本使用不做说明,默认是了解的。

class MyClass:    i = int(123)    def __init__(self):        self.i=5    def me(self):        print("111")x=MyClass()x.me()print(x.i,end="")


self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

类中属性中 加  ‘__’代表的是 私有属性,在外部无法直接访问。

Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义。


#!/usr/bin/python3# 类定义class People:    # 定义基本属性    name = ''    age = 0    # 定义私有属性,私有属性在类外部无法直接进行访问    weight = 0    # 定义构造方法    def __init__(self, n, a, w):        self.name = n        self.age = a        self.weight = w    def speak(self):        print("%s 说: 我 %d 岁。" % (self.name, self.age))class student(People):    __grade = int(0)    def __init__(self, n, a, w, g):        People.__init__(self, n, a, w)        self.__grade = g    def speak(self):        print("{0:2}说: 我{1:2}岁;{2:2}kg;{3:2d}分;".format(self.name, self.age, self.weight, self.__grade))s = student('ken', 10, 60, 20)s.speak()

值得一提的是,python同时也支持多继承。

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。

类的私有属性

__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs

同样的不难推测出:

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods


类的专有方法:

  • __init__ : 构造函数,在生成对象时调用
  • __del__ : 析构函数,释放对象时使用
  • __repr__ : 打印,转换
  • __setitem__ : 按照索引赋值
  • __getitem__: 按照索引获取值
  • __len__: 获得长度
  • __cmp__: 比较运算
  • __call__: 函数调用
  • __add__: 加运算
  • __sub__: 减运算
  • __mul__: 乘运算
  • __div__: 除运算
  • __mod__: 求余运算
  • __pow__: 乘方

文件通配符

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:

>>> import glob>>> glob.glob('*.py')['primes.py', 'random.py', 'quote.py']

因为数据解析部分  有关于时间的加减,因此这部分强调在日期和时间模块。

日期和时间

datetime模块为日期和时间处理同时提供了简单和复杂的方法。

支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

该模块还支持时区处理:

>>> # dates are easily constructed and formatted>>> from datetime import date>>> now = date.today()>>> nowdatetime.date(2003, 12, 2)>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'>>> # dates support calendar arithmetic>>> birthday = date(1964, 7, 31)>>> age = now - birthday>>> age.days14368

关于python中的时期的处理在后面我还会专门地提出来说一下。

原创粉丝点击