python文件、os模块、datetime模块、类和对象、正则表达式、re模块、http请求

1.python文件

open()方法用于打开一个文件,可以设置打开文件方式比如读、写。

file对象常用函数:

file.close()关闭文件

file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。

file.next()返回文件下一行

file.read([size])从文件读取指定的字节数,如果未给定或为负数则读取所有

file.readline()读取整行,包括'\n'换行符

file.readlines([sizeint])读取所有行并返回列表,如果sizeint>0,则是设置一次读多少字节,减轻读的压力。

file.write(str)将字符串写文件。

对excel的操作

import xlrd
import xlwt
def read_excel():
    #打开文件
    workbook = xlrd.open_workbook(r'read_excel.xlsx', formatting_info=False)
    #获取所有sheet
    print('所有工作表', workbook.sheet_names())
    sheet1 = workbook.sheet_names()[0]
    print('sheet1_name', sheet1)

    #根据sheets索引或者名称获取sheet内容
    sheet1 = workbook.sheet_by_index(0)
    sheet1 = workbook.sheet_by_name('Sheet1')

    #打印出所有合并的单元格
    print(sheet1.merged_cells)
    for (row, row_range, col, col_range) in sheet1.merged_cells:
        print(sheet1.cell_value(row, col))

    #sheet1的名称、行数、列数
    print('工作表名称: %s, 行数: %d, 列数:%d' % (sheet1.name, sheet1.nrows, sheet1.ncols))

    #获取整行和整列的值
    row = sheet1.row_values(1)
    col = sheet1.col_values(4)
    print('第2行的值:%s' % row)
    print('第5列的值:%s' % col)

    #获取单元格的内容
    print('第一行第一列:%s' % sheet1.cell(0, 0).value)
    print('第一行第二列:%s' % sheet1.cell_value(0, 1))
    print('第一行第三列:%s' % sheet1.row(0)[2])

    #获取单元格内容的数据类型
    print('第二行第三列的数据类型: %s' % sheet1.cell(3, 2).ctype)

def set_style(name, height, bold=False):
    style = xlwt.XFStyle()#初始化样式

    font = xlwt.Font() #为样式创建字体
    font.name = name   #设置字体名字对应系统内字体
    font.bold = bold #是否加粗
    font.color_index = 5 #设置字体颜色
    font.height = height #设置字体大小

    #设置边框大小
    borders = xlwt.Borders()
    borders.left = 6
    borders.right = 6
    borders.top = 6
    borders.bottom = 6

    style.font = font #为样式设置字体
    style.borders = borders  #为样式设置边框
    return style

def write_excel():
    writeexcel = xlwt.Workbook() #创建工作表
    sheet1 = writeexcel.add_sheet(u"Sheet1", cell_overwrite_ok=True) #创建sheet

    row0 = ['编号', '姓名', '性别', '年龄', '生日', '学历']
    num = [1, 2, 3, 4, 5, 6, 7, 8]
    column0 = ['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8']
    education = ['小学', '初中', '高中', '大学']

    #生成合并单元格
    i,j = 1, 0
    while i < 2 * len(education) and j < len(education):
        sheet1.write_merge(i, i + 1, 5, 5, education[j], set_style("Arial", 200, True))
        i += 2
        j += 1

    #生成第一行
    for i in range(0, 6):
        sheet1.write(0, i, row0[i])

    #生成前两列
    for i in range(1, 9):
        sheet1.write(i, 0, i)
        sheet1.write(i, 1, 'a1')
    #添加超链接
    n = 'HYPERLINK'
    sheet1.write_merge(9, 9, 0, 5, xlwt.Formula(n + '("https://www.baidu.com")'))

    #保存文件
    writeexcel.save("demo1.xls")

if __name__ == '__main__':
     read_excel()
     write_excel()

对csv文件操作

参考链接:https://www.cnblogs.com/mayi0312/p/6840931.html

2.os模块

os模块提高了丰富的方法处理文件和目录。

os.chdir(path) 改变当前目录

os.getcwd()获取当前工作目录

os.listdir(path)返回path指定下的文件或文件夹名字的列表

os.mkdir(path)创建一个名为path的文件夹

os.open(file)打开一个文件

3.datetime模块

#关于time和datetime模块
import time, datetime
#获取当前时间
print(time.time())
#将时间戳转化为时间元组struct_time
print(time.localtime(time.time()))
#格式化输出想要的时间,可以使用time模块,也可以使用datetime模块,在time模块中参数类型是时间元组,
# 在datetime模块中参数类型是date或者time或者datetime模块
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
#不加参数,默认输出当前时间
print(time.strftime('%Y-%m-%d %H:%M:%S'))
#也可以使用datetime模块实现
t = time.time()
print(datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S'))
#同时也可以只使用datetime模块
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
print(datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S'))
#获取时间差,计算程序的运行时间等
def t():
    start = time.time()
    time.sleep(10)
    end = time.time()
    return end - start
print(t())
starttime = datetime.datetime.now()
endtime = datetime.datetime.now()
print((endtime - starttime).seconds)

#计算昨天的日期
d1 = datetime.datetime.now()
d2 = d1 - datetime.timedelta(days=1)
print(d1)
print(d2)

#时间元组转化为时间戳
print(datetime.datetime.now())
print(datetime.datetime.now().timetuple())
print(time.mktime(datetime.datetime.now().timetuple()))

#time模块常用方法
#1.time.localtime([secs]),将一个时间戳转换成当前时区的struct_time,未提供secs时,以当前时间为准
print('未提供secs参数', time.localtime())
print('提供secs参数', time.localtime(time.time()))
#2.time.strftime(format[, t]),将指定的struct_time按照指定的格式化字符串输出,t未输入,以当前时间的时间戳为准
print('未提供t参数', time.strftime('%Y-%m-%d %H:%M:%S'))
print('提供t参数', time.strftime('%Y-%m-%d %H:%H:%S', time.localtime(1407945600.0)))
#3.time.time(),返回当前时间的时间戳
print('返回当前时间的时间戳', time.time())
#4.time.mktime(t),将一个struct_time转成时间戳
print('将struct_time转成时间戳', time.mktime(time.localtime(1407945600.0)))

#datetime模块常用方法
'''
datetime模块常用的有四个类:
datetime.date:指年月日构成的日期
datetime.time:指时分秒微秒构成的一天24时中具体的时间
datetime.datetime:上面两个合在一起,既包括时间又包括日期
datetime.timedelta:时间间隔对象。一个时间点加上一个时间间隔可以得到一个新的时间点
'''

#datetime.date类
#1.新建一个date对象,时间为今天,可以直接调用datetime.date.today(),还可以在datetime.date()传值
print('今天', datetime.date.today())
#2.datetime.date.strftime(format)格式化为需要的时间
today = datetime.date.today()
print('格式化今天的时间', today.strftime('%Y-%m-%d %H:%M:%S'))
#3.datetime.date.timeple()将时间转化为struct_time
print('今天的struct_time形式', today.timetuple())
#4.datetime.date.replace(year, month, day)返回替换之后的date对象
print('替换年份为2013', today.replace(year=2013))
#5.datetime.date.fromtimestamp(timestamp)将时间戳转换成date对象
print('时间戳转成date对象', datetime.date.fromtimestamp(1408058729))

#datetime.time类
#1.新建一个time对象
print('datetime.time对象', datetime.time())
#2.datetime.time.strftime(format)格式化输出
t = datetime.time()
print('格式化输出', t.strftime('%Y-%m-%d %H:%M:%S'))
#3.datetime.time.replace(hour, minute, second)返回一个替换之后的times对象
print('替换小时为14', t.replace(hour=14))

#datetime.datetime类
#1.新建一个datetime对象,可以直接调用datetime.datetime.today(),也可以在datetime.datetime()中传值
print('新建一个datetime对象', datetime.datetime.today())
#2.datetime.datetime.now([tz])当不指定时区时于datetime.datetime.today()一样
print('datetime.datetime.now', datetime.datetime.now())
#3.datetime.datetime.strftime()格式化为需要的时间格式
t = datetime.datetime.today()
print('格式化datetime.datetime', t.strftime('%Y-%m-%d %H:%M:%S'))
#4.datetime.datetime.timetuple()转换成struct_time格式
print('struct_time格式', t.timetuple())
#5.datetime.datetime.replace(year, month, day),返回一个替换之后的datetime对象
print('替换年份为2013', t.replace(year=2013))
#6.datetime.datetime.fromtimestamp(timestamp)将时间戳转成datetime对象
print('时间戳转成datetime对象', datetime.datetime.fromtimestamp(1408061894))

#datetime.timedelta类 主要做时间的加减
today = datetime.datetime.today()
yesterday = today - datetime.timedelta(days=1)
print('今天', today)
print('昨天', yesterday)

 4.类与对象

class Employee:
    empCount = 0#类变量,只能用类名来访问
    def __init__(self, name, salary):
        self.name = name        #name,salary为实例变量
        self.salary = salary
        Employee.empCount += 1
    def displayCount(self):
        print('Total Employee:%d' % Employee.empCount)
    def displayEmployee(self):
        print('name:', self.name, 'salary:', self.salary)

#创建Employee的第一个对象
emp1 = Employee('Zara', 1800)
#创建Employee的第二个对象
emp2 = Employee('Wbaw', 2000)
emp1.displayEmployee()
emp2.displayEmployee()
emp1.displayCount()

5.正则表达式和re模块

 http://www.runoob.com/python/python-reg-expressions.html

6.http请求

https://www.cnblogs.com/landhu/p/5104628.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值