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请求