手机可以做网站吗?,温州百度推广排名优化,个人网站怎么进后台,网站推广分为哪几个部分一、C版
程序运行时产生的数据都属于临时数据#xff0c;程序—旦运行结束都会被释放通过文件可以将数据持久化
C中对文件操作需要包含头文件 fstream
文件类型分为两种:
1. 文本文件 - 文件以文本的ASCII码形式存储在计算机中
2. 二进制文件- 文件以文本的二进…一、C版
程序运行时产生的数据都属于临时数据程序—旦运行结束都会被释放通过文件可以将数据持久化
C中对文件操作需要包含头文件 fstream
文件类型分为两种:
1. 文本文件 - 文件以文本的ASCII码形式存储在计算机中
2. 二进制文件- 文件以文本的二进制形式存储在计算机中用户一般不能直接读懂它们
操作文件的三大类:
1. ofstream : 写操作
2. ifstream : 读操作
3. fstream : 读写操作
1.1 文本文件
1.1.1 写文件
写文件步骤如下:
1.包含头文件 #include fstream
2.创建流对象 ofstream ofs;
3.打开文件 ofs.open(文件路径,打开方式);
4.写数据 ofs 写入的数据;
5.关闭文件 ofs.close(); 文件的打开方式
打开方式解释ios::in为读文件而打开文件ios::out为写文件而打开文件ios::ate初始位置文件尾ios::app追加方式写文件ios::trunc如果文件存在先删除再创建ios::binary二进制方法 注意文件打开方式可以配合使用利用 | 操作符
例如用二进制方式写文件 ios::binary | ios::out #include iostream
#include string
#include fstream
using namespace std;//文本文件 写文件
void test01() {//1、包含头文件 fstream//2、创建流对象ofstream ofs;//3、打开方式ofs.open(test.txt, ios::out);//4、写内容ofs 姓名张三 endl;ofs 性别男 endl;ofs 年龄18 endl;//5、关闭文件ofs.close();
}int main() {test01();return 0;
}
总结:
·文件操作必须包含头文件 fstream
·读文件可以利用ofstream 或者fstream类
·打开文件时候需要指定操作文件的路径以及打开方式
·利用可以向文件中写数据
·操作完毕要关闭文件
1.1.2 读文件
读文件与写文件步骤相似但是读取方式相对于比较多
读文件步骤如下:
1.包含头文件 #include fstream
2.创建流对象 ifstream ifs;
3.打开文件并判断文件是否打开成功 ifs.open(“文件路径,打开方式);
4.读数据 四种方式读取
5.关闭文件 ifs.close();
#include iostream
#include string
#include fstream
using namespace std;//文本文件 读文件
void test01() {//1、包含头文件 fstream//2、创建流对象 ifstream ifs;//3、打开文件并且判断是否打开成功ifs.open(test.txt, ios::in);if (!ifs.is_open()) {cout 文件打开失败 endl;return;}//4、读数据//第一种/*char buf[1024] {0};while (ifs buf) {cout buf endl;}*///第二种/*char buf[1024] {0};while (ifs.getline(buf, sizeof(buf))) {cout buf endl;}*///第三种/*string buf;while (getline(ifs, buf)) {cout buf endl;}*///第四种 EOF-end of file 不推荐char c;while ((c ifs.get()) ! EOF) {cout c;}//5、关闭文件ifs.close();
}int main() {test01();return 0;
}
总结:
·读文件可以利用ifstream ,或者fstream类
·利用is_open函数可以判断文件是否打开成功
· close关闭文件
1.2 二进制文件
以二进制的方式对文件进行读写操作
打开方式要指定为ios::binary
1.2.1 写文件
二进制方式写文件主要利用流对象调用成员函数write
函数原型: ostream write(const char * buffer,int len) ; 参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数
#include iostream
#include string
#include fstream
using namespace std;//二进制文件 写文件
class Person {
public://如果用二进制进行存储这里最好用C语言的char类型char m_Name[64]; //姓名 int m_Age;
};void test01() {//1、包含头文件//2、创建流对象ofstream ofs;//3、打开文件ofs.open(test.txt, ios::out | ios::binary);//4、写文件Person p { 张三,18 };//Person* 强转为 const char*类型ofs.write((const char*)p, sizeof(Person));//5、关闭文件ofs.close();}int main() {test01();return 0;
}
1.2.2 读文件
二进制方式读文件主要利用流对象调用成员函数read
函数原型: istream read(char *buffer,int len); 参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数
#include iostream
#include string
#include fstream
using namespace std;//二进制文件 读文件
class Person {
public://如果用二进制进行存储这里最好用C语言的char类型char m_Name[64]; //姓名 int m_Age;
};void test01() {//1、包含头文件//2、创建流对象ifstream ifs;//3、打开文件 判断文件是否打开成功ifs.open(test.txt, ios::in | ios::binary);if (!ifs.is_open()) {cout 文件打开失败 endl;return;}//4、读文件Person p;//Person* 强转为 char* 类型ifs.read((char*)p, sizeof(Person));cout 姓名 p.m_Name 年龄 p.m_Age endl;//5、关闭文件ifs.close();}int main() {test01();return 0;
}
文件输入流对象可以通过read函数以二进制方式读数据 二、Python版
1、文件操作
在学习文件操作之前先来回顾一下编码的相关以及先关数据类型的知识。
·字符串类型(str)在程序中用于表示文字信息本质上是unicode编码中的二进制。 name 武沛齐 ·字节类型(bytes)
·可表示文字信息本质上是utf-8/gbk等编码的二进制对unicode进行压缩方便文件存储和网络传输)
name 武沛齐
data name.encode(utf-8)
print(data) #b\xe6\xad\xa6\xe6\xb2\x9b\xe9\xbd\x90result data.decode(utf-8)
print(result) #武沛齐
·可表示原始二进制图片、文件等信息
1.1 读文件
·读文本文件 1.打开文件-路径相对路径:info.txt绝对路径:rD:\python的学习\题目\info.txt-模式rb 表示读取文件原始二进制( r, 读 read; b, 二进制 binary)
#1、打开文件
file_object open(rD:\python的学习\题目\info.txt,moderb)#2、读取文件
data file_object.read()#3、关闭文件
file_object.close()print(data) #b\xe5\xa7\x93\xe5\x90\x8d \xef\xbc\x9a \xe6\xad\xa6\xe6\xb2\x9b\xe9\xbd\x90text data.decode(utf-8)
print(text) 改进 #1、打开文件
# rt 读取文本内容
file_object open(info.txt,modert,encodingutf-8)
#意思是 打开文件后 通过 utf-8 转换后再读取文本内容#2、读取文件
data file_object.read()#3、关闭文件
file_object.close()print(data) #就是文件存储的内容了无需decode·读图片等非文本文件 #1、打开文件
file_object open(a1.png,moderb)#2、读取文件
data file_object.read()#3、关闭文件
file_object.close()print(data)
若该文件不存在会报错 那如何判断路径是否存在呢
import osexists os.path.exists(info.txt) #返回的是 bool 值
print(exists) #True
1.2 写文件
·写文本文件
# 1、打开文件
# 路径相对/绝对
# 模式wb (要求写入的内容需要是二进制字节类型)
file_object open(t1.txt, modewb)# 2、写入内容
file_object.write(武沛齐.encode(utf-8))# 3、文件关闭
file_object.close()改进
# 1、打开文件
# 路径相对/绝对
# 模式wt
# 如果不写 encoding 会以默认值 utf-8 写入
file_object open(t1.txt, modewt,encodingutf-8)# 2、写入内容
file_object.write(武沛齐)# 3、文件关闭
file_object.close()·写图片等文件
# 相当于复制了一份
f1 open(a1.png, moderb)
content f1.read()
f1.close()f2 open(a2.png, modewb)
f2.write(content)
f2.close()注意的是w写入文件时先清空文件再在文件中写入内容
而且如果路径没有该文件w模式会新建然后再写入内容
所以如果你要写入时在循环里实现写入循环前后只实现一次的打开和关闭
file_object open(test.txt,modewt)while True:user input(请输入用户名)if user.upper() Q:breakpwd input(请输入密码)#data {}--{}\n.format(user,pwd)data f{user}--{pwd}\nfile_object.write(data)
file_object.close()
效果
wjw--123
pxy--4561.3 文件打开方式
关于文件的打开模式常见应用有
r w x a 的默认为 rt wt xt at
模式文件存在文件不存在 只读 r、rt、rb 读报错 只有 w、wt、wb 清空再写创建再写 只写(了解即可) x、xt、xb 报错创建再写 只写 a、at、ab 【尾部追加】 尾部追加创建再写 读写 r、rb 默认光标位置起始位置w、wb 默认光标位置起始位置(清空文件)x、xb 默认光标位置起始位置(新文件)a、ab 默认光标位置末尾 # rtfile_object open(info.txt,modert,encodingutf-8)
#读取内容
data file_object.read()print(data)#写入内容
file_object.write(你好啊)
file_object.close()
与 # rtfile_object open(info.txt,modert,encodingutf-8)#写入内容
file_object.write(你好啊)#读取内容
data file_object.read()print(data)file_object.close()
结果是不同的这里与文件的光标有关
rt 默认光标位置是起始位置如果先写入就会往后覆盖再读取的时候也会从光标开始往后读取
如果先读取光标会移至最后然后再写入 对于wt # wtfile_object open(info.txt,modewt,encodingutf-8)#读取内容,由于wt会清空内容所以必定为空
data file_object.read()
print(data)#写入内容此时写入后光标会移至最后
file_object.write(你好啊)#再想读取内容光标要移至最前面,就ok了
file_object.seek(0)
data file_object.read()
print(data)file_object.close()
对于at # atfile_object open(info.txt,modeat,encodingutf-8)#写入内容at光标开始在最后直接末尾追加
file_object.write(你好啊)#想读取内容光标要移至最前面,就ok了
file_object.seek(0)
data file_object.read()
print(data)file_object.close()
1.4 常见功能
在上述对文件的操作中我们只使用了write和read来对文件进行读写其实在文件操作中还有很多其他的功能来辅助实现更好的读写文件的内容。 1、read读所有
f open(info.txt,moder,encodingutf-8)
data f.read()
print(data)
2、read读一个字符(三个字节)
f open(info.txt,moder,encodingutf-8)
data f.read(1)
f.close()
print(data)
3、read读一个字节
f open(info.txt,moderb)
data f.read(1)
f.close()
print(data)
4、readline读一行
f open(info.txt,moder,encodingutf-8)
data f.readline()print(data)f.close()
5、readlines读所有行每行作为列表的一个元素
f open(info.txt,moder,encodingutf-8)
data f.readlines()print(data)f.close()
6、循环读大文件(readline加强版)
while循环难以判断其终止操作所以用 for
f open(info.txt,moder,encodingutf-8)for line in f:print(line.strip())f.close()
7、flush刷到硬盘
f open(info.txt,modew,encodingutf-8)for i in range(0,3):#不是写到了硬盘而是写在缓冲区系统会将缓冲区的内容刷到硬盘f.write(你好啊)#写上flush之后立即刷到yingpanlf.flush()print(1)f.close()
8、seek() 移动光标位置(字节)
f open(info.txt,moder,encodingutf-8)#移动光标位置在次光标之后开始写内容如果有内容则会覆盖
#移动到指定字节的位置最好是3的倍数否则会发生乱码的情况
f.seek(3)
f.write(中国)f.close()
注意︰在a模式下调用write在文件中写入内容时永远只能将内容写入到尾部不会写到光标的位置。
9、tell() 获取当前光标的位置
f open(info.txt, moder, encodingutf-8)p1 f.tell()
print(p1) # 0
f.read(2) # 读取的是字符 2 * 3 个字节
p2 f.tell()
print(p2) # 6f.close()f open(info.txt, moderb)p1 f.tell()
print(p1) # 0
f.read(3) # 读取的是3 个字节
p2 f.tell()
print(p2) # 3f.close()1.5 上下文管理
之前对文件进行操作时每次都要打开和关闭文件比较繁琐且容易忘记关闭文件。以后再进行文件操作时推荐大家使用with上下文管理它可以自动实现关闭文件。
writh open ( ”xxXX,txt , mode rb ) as file_object :data file_object.read()print (data)
在Python 2.7后with又支持同时对多个文件的上下文进行管理即:
with open (“x展x据.txtmoderb) as f1open ( %x×xtxt”moderb ) as f2:pass
2、CSV格式文件
逗号分隔值(Comma-separated ValuesCSV有时也称为字符分隔值因为分隔字符也可以不是逗号)其文件以纯文本形式存储表格数据数字和文本)。对于这种格式的数据我们需要利用open函数来读取文件并根据逗号分隔的特点来进行处理。 股票代码,股票名称当前价涨跌额,涨跌幅,年初至今 601778,t晶科,6.29,1.92 ,-43.94%,43.948% 688566,吉贝尔。52.66,6.96,15.238,122.29.... with open(cs.csv, moder,encodingutf-8) as f:f.readline()for line in f:id,year,bl line.strip().split(,)print(id,year)
3、ini格式
ini文件是Initialization File的缩写平时用于存储软件的的配置文件。例如:MySQL数据库的配置文件。 [DataBase] ServerIP********** ServerPort8080 ControlConnectStringQWDJ7XH6oWaANAGhVgh5/5UxYrA2rfz/ufAkDlN1H9Twv7Z0SoCfRwYdyzCjF/ANUfPxlO6cLDAhm4xxmbADyKs6zmkWuGQNgDZmPx6c ControlConnectCategory0 [LogonInfo] SaveUserIDY UserIDadmin DBServerAppDB DBCenterDemo [UserConfig] OpenDownloadFileAtOnecY WindowStyleDevExpress Dark Style [Language] LanguageCHS [AutoUpdate] Version1.1 这种格式是可以直接使用open来出来考虑到自己处理比较麻烦所以Python为我们提供了更为方便的方式。
3.1 读取所有节点
import configparserconfig configparser.ConfigParser()
config.read(in.ini,encodingutf-8)#获取节点列表形式
result config.sections()
print(result)
3.2 读取节点下的键值
import configparserconfig configparser.ConfigParser()
config.read(in.ini,encodingutf-8)#该节点下的键值返回的是列表里的元组
result config.items(LogonInfo)
print(result)3.3 获取某个节点下的键值对应的值
import configparserconfig configparser.ConfigParser()
config.read(in.ini,encodingutf-8)result config.get(UserConfig,WindowStyle)
print(result)3.4 其他
import configparserconfig configparser.ConfigParser()
config.read(in.ini,encodingutf-8)#判断是否有该节点
v1 config.has_section(UserConfig)
print(v1)#增加一个节点
config.add_section(group)
#此时并未写入所以要写write(),这里可以换别的名字重新创建一个文件
config.write(open(in.ini,modew,encodingutf-8))#增加键值
config.set(group,name,wjw)
config.write(open(in.ini,modew,encodingutf-8))#删除节点
config.remove_section(Language)
config.write(open(in.ini,modew,encodingutf-8))#删除键值
config.remove_option(LogonInfo,userid)
config.write(open(in.ini,modew,encodingutf-8))4、XML格式文件 暂时用不到哈先不学了
5、Excel格式文件
Python内部未提供处理Excel文件的功能想要在Python中操作Excel需要按照第三方的模块。 pip install openpyxl 此模块中集成了Python操作Excel的相关功能接下来我们就需要去学习该模块提供的相关功能即可。
5.1 读文件
1.读sheet
from openpyxl import load_workbookwb load_workbook(1.xlsx)#1、获取excel文件中的所有sheet名称
#print(wb.sheetnames) #[sheet2, Sheet1]#2、选择sheet,基于sheet名称sheet wb[Sheet1]
#读取单元格
cell sheet.cell(1,1)
print(cell.value)
#3、选择sheet基于索引位置sheet wb.worksheets[0]
cell sheet.cell(3,1)
print(cell.value)
#4、循环所有的sheetfor name in wb.sheetnames:sheet wb[name]cell sheet.cell(3,1)print(cell.value)for sheet in wb.worksheets:cell sheet.cell(3, 1)print(cell.value)for sheet in wb:cell sheet.cell(3,1)print(cell.value)
from openpyxl import load_workbookwb load_workbook(1.xlsx)
sheet wb.worksheets[0]#1、获取第N行第N列的单元格cell sheet.cell(3,1)
print(cell.value)
print(cell.font)
print(cell.style)
print(cell.alignment) #排列情况
#2、获取某个单元格c1 sheet[B3]
print(c1.value)c2 sheet[C4]
print(c2.value)
#3、第N行所有的单元格for cell in sheet[3]:print(cell.value)
#4、所有行的数据for row in sheet.rows:#获得的是元组print(row[2].value)
#5、所有列的数据for col in sheet.columns:print(col[2].value)2.读合并的单元格 from openpyxl import load_workbookwb load_workbook(1.xlsx)
sheet wb.worksheets[1]c1 sheet.cell(1,1)
print(c1.value) #测试数据c2 sheet.cell(1,2)
print(c2.value) #None 合并单元格显示最前面的其他的都置为空
5.2 写Excel
在Excel中想要写文件大致要分为
1.原Excel文件基础上写内容
from openpyxl import load_workbookwb load_workbook(1.xlsx)
sheet wb.worksheets[1]# 找到单元格并修改单元的内容
cell sheet.cell(9,1)
cell.value wjm#将excel文件保存到2.xlsl文件中
wb.save(2.xlsx)2.新创建Excel文件写内容
from openpyxl import workbook#创建excel且默认会创建一个sheet(名称为Sheet)
wb workbook.Workbook()sheet wb.worksheets[0] #或 sheet wb[Sheet]#找到单元格并修改单元格的内容
cell sheet.cell(1,1)
cell.value 新的开始#将excel文件保存到3.xlsx文件中
wb.save(3.xlsx)
拓展
from openpyxl import workbookwb workbook.Workbook()#1、修改sheet名称sheet wb.worksheets[0]
sheet.title 数据集
wb.save ( p2.xlsx)
#2、创建sheet并设置sheet颜色sheet wb.create_sheet(工作计划,0)
sheet.sheet_properties.tabcolor 1072BA
wb.save(p2.xlsx)
#3、默认打开的sheetwb.active o
wb.save(p2.xlsx)
#4、拷贝sheetsheet wb.create_sheet (工作计划)
sheet.sheet_properties.tabColor 1072BA
new_sheet wb.copy_worksheet(wb[sheet])
new_sheet.title 新的计划
wb.save(p2.xlsx)
#5、删除sheetdel wb[用户列表]
wb.save(p2.xlsx)还有
from openpyxl import load_workbook
from openpyxl.styles import Alignment, Border, Side, Font, PatternFill, GradientFillwb load_workbook(1.xlsx)
sheet wb.worksheets[0]# 1.获取某个单元格修改值cell sheet.cell(1,1)
cell.value 开始
wb.save(2.xlsx)
# 2.获取某个单元格修改值sheet[B2] 开始
wb.save(2.xlsx)
# 3.获取某些单元格修改值cell_list sheet[B2:C3] #4个单元格
#(
# (单元格单元格)
# (单元格单元格)
#)
for row in cell_list:for cell in row:cell.value 新的值
wb.save(2.xlsx)
# 4.对齐方式cell sheet.cell(1,1)
#horizontal 水平方向对齐方式general left center right fill justify centerContinous distributed
#vertical 垂直方向对齐方式top center bottom justify distributed
#text_rotation 旋转角度
#wrap_text 是否自动换行
cell.alignment Alignment(horizontalcenter,verticalcenter,text_rotation45,wrap_textTrue)
wb.save(2.xlsx)
# 5.边框
# side 的 style 如下dashDot dashDotDot dashed dotted double hair medium mediumDashDot mediumDashDot mediumDashed slantDashDot thick thincell sheet.cell(9,2)
cell.border Border(top Side(stylethin,colorFFB6C1),bottomSide(styledashed,colorFFB6C1),leftSide(styledashed,colorFFB6C1),rightSide(styledashed,color9932cC),diagonalSide(stylethin,color483D8B),#对角线diagonalupTrue, #左下 ~右上dliagonalDownTrue #左上 –右下
)
wb.save(2.xlsx)
# 6.字体cell sheet.cell(5,1)
cell.font Font(name微软雅黑,size45,colorff0000,underlinesingle)
wb.save(2.xlsx)
# 7.背景色cell sheet.cell(5,1)
cell.fill PatternFill(solid,fgColor99ccff)
wb.save(2.xlsx)
# 8.渐变背景色cell sheet.cell(5,1)
cell.fill GradientFill(linear,stop(FFFFFF,99ccff,000000))
wb.save(2.xlsx)
# 9.宽高 (索引从1开始)sheet.row_dimensions[1].height 50
sheet.columns_dimensions[E].width 100
wb.save(2.xlsx)
# 10.合并单元格sheet.merge_cells(B2:D8)
sheet.merge_cells(start_row15,start_column3,end_row18,end_column8)
wb.save(2.xlsx)
# 11.写入公式sheet wb.worksheets[1]
sheet[D1] 合计
sheet[D2] B2*C2
wb.save(2.xlsx)sheet wb.worksheets[1]
sheet[D3] SUM(B3,C3)
wb.save(2.xlsx)
# 12.删除#idx. 要删除的索引位置
#amount 从索引位置开始要删除的个数(默认为1)
sheet.delete_cols(idx1,amount1)
sheet.delete_rows(idx1,amount2)
wb.save(2.xlsx)
# 13.插入sheet.insert_cols(idx5,amount10)
sheet.insert_rows(idx3,amount2)
wb.save(2.xlsx)
# 14.循环写内容sheet wb[Sheet]
cell_range sheet[A1:C2]
for row in cell_range:for cell in row:cell.value xxfor row in sheet.iter_rows(min_row5,min_col1,max_row7,max_col10):for cell in row:cell.value oo
wb.save(2.xlsx)
# 15.移动# 将H2:J10范围的数据向右移动15个位置、向上移动1个位置
sheet.move_range(H2:J10, rows-1, cols15)
wb.save(p2.xlsx)sheet wb.worksheets[3]
sheet[D1] 合计
sheet[D2] SUM(B3,C3)
sheet.move_range(B1:D3,cols10,translateTrue)#自动翻译公式
wb.save(2.xlsx)
#16.打印区域sheet.print_area A1:D200
wb.save(2.xlsx)
#17.打印时每个页面的固定表头sheet.print_title_cols A:D
sheet.print_title_rows 1:3
wb.save(2.xlsx)你以为结束了吗
并没有因为我学校考的是CSV文件我们要用csv模板Excel用 xlrd 和 xlwt 模板学习下面我们继续学习
CSV
1.导入模块
Python有内置CSV模块导入这个模块后可以很轻松读取CSV文件。 import csv 读写文件
·open()打开文件使用完毕后必须close()关闭因为文件对象会占用操作系统的资源并且操作系统同一时间能打开的文件数量也是有限的
·with open(x) as x:打开的文件使用关闭后不需要主动关闭文件。因为with语句的上下文管理器会帮助处理。这在操作资源文件时非常方便因为它能确保在代码执行完毕后资源会被释放掉
2.读取CSV文件
1.使用open()打开CSV文件 csvFile open(文件名) #打开文件建立 CSV 文件对象 csvFile 2.使用with打开CSV文件 with open(文件名)as csvFile: # csvFi1e是可以自行命名的文件对象 .... 2.1.建立reader对象
·有了CSV文件对象后下一步可以使用c5v模块的 reader()建立 reader对象可以使用list()将这个reader 对象转换成列表(list),现在我们可以很轻松地使用这个列表资料了。
import csvfn cs.csv
with open(fn) as csvFile: #打开csv文件csvReader csv.reader(csvFile) #读文件建立Reader对象
2.2 读取CSV文件
import csvfn cs.csv
with open(fn) as csvFile: #打开csv文件csvReader csv.reader(csvFile) #读文件建立Reader对象listReport list(csvReader) #将数据转换为列表print(listReport[0][1])#打印即可 3.1.建立writer对象
import csvfn cs.csv
with open(fn,w) as csvFile: #打开csv文件csvWriter csv.writer(csvFile) #写文件建立writer对象
3.2 写入CSV文件
import csvfn cs.csv
with open(fn,w) as csvFile: #打开csv文件csvWriter csv.writer(csvFile) #写文件建立writer对象csvWriter.writerow([Name,Age,City])csvWriter.writerow([wjw,25,TaiBei])
EXCEL
方式功能文件格式xlrd只能读xls , xlsxxlwt只能写只能xls格式 xlrd
import xlrd
#打开文件
book xlrd.open_workbook(1.xlsx)
#读取指定sheetprint(book.sheets())#获取全部sheetsheet book.sheet_by_index(0) #根据索引获取工作表sheet book.sheet_by_name(Sheet1) #根据sheetname进行获取print(book.sheet_names())#获取所有工作表nameprint(book.nsheets)#返回工作表数量
#获取行和列数
rows sheet.nrows
cols sheet.ncols操作行
import xlrd#打开文件
book xlrd.open_workbook(1.xlsx)#操作excel行
sheetbook.sheet_by_index(1)#获取第一个工作表
print(sheet.nrows)#获取sheet下的有效行数
print(sheet.row(1))#该行单元格对象组成的列表
print(sheet.row_types(2))#获取单元格的数据类型
print(sheet.row(1)[2].value)#得到单元格value
print(sheet.row_vaiues(1))#得到指定行单元格的value
print(sheet.row_values(1))#得到指定行单元格的value
print(sheet.row_len(1))#得到单元格的长度操作列
import xlrd#打开文件
book xlrd.open_workbook(1.xlsx)#操作excel列
sheetbook.sheet_by_index(1)#获取第一个工作表
print(sheet.ncols)#获取sheet下的有效列数
print(sheet.col(1))#该行单元格对象组成的列表
print(sheet.col_types(2))#获取单元格的数据类型
print(sheet.col(1)[2].value)#得到单元格value
print(sheet.col_vaiues(1))#得到指定列单元格的value
print(sheet.col_values(1))#得到指定列单元格的value
print(sheet.col_len(1))#得到单元格的长度
操作Excel单元格
import xlrd#打开文件
book xlrd.open_workbook(1.xlsx)#操作Excel单元格
sheetbook.sheet_by_index(0)
print(sheet.cell(1,2))
print(sheet.cell_type(1,2))
print(sheet.cell(1,2).ctype) #获取单元格数据类型
print(sheet.cell(1,2).value)
print(sheet.cell_value(1,2))
xlwt
import xlwttitlestyle xlwt.XFStyle() #初始化样式
titlefont xlwt.Font()
titlefont.name 宋体
titlefont.bold True #加粗
titlefont.height 11*20 #字号
titlefont.colour_index 0x08 #设置字体颜色
titlestyle.font titlefont#单元个对齐方式
cellalign xlwt.Alignment()
cellalign.horz 0x02
cellalign.vert 0x01
titlestyle.alignment cellalign#边框
borders xlwt.Borders()
borders.rightxlwt.Borders.DASHED
borders.bottomxlwt.Borders.DOTTED
titlestyle.borders borders#
datestyle xlwt.XFStyle()
bgcolor xlwt.Pattern()
bgcolor.pattern xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour 22 #背景颜色
datestyle.pattern bgcolor#第一步:创建工作簿
wbxlwt.Workbook()
#第二步:创建工作表
wswb.add_sheet(CNY)
#第三步:填充数据
ws.write_merge(0,1,0,5,2019年货币兑换表,titlestyle)
#写入货币数据
data ((Date,英镑,人民币,港币,日元,美元),(01/01/2019,8.722551,1,0.877885,0.062722,6.8759),(02/01/2019,8.634922,1,0.875731,0.062773,6.8601))
for i , item in enumerate(data):
#enumerate 包含索引for j , val in enumerate(item):if j0:ws.write(i 2, j, val,datestyle)else:ws.write(i 2,j,val)#第四步:保存
wb.save(2019-CNY.xls)
就这样吧我累了再见