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

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

# /usr/bin/python
from 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()
>>> now
datetime.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.days
14368

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值