精华内容
下载资源
问答
  • python读取excel需要哪些技能如果你需要从一个excel中摘取部分数据,那么,直接打开excel,随后粘贴复制即可。如果你需要从100个excel中以相同的方法摘取部分数据,那么,你应当写一个python脚本,写脚本的时间,...

    用python读取excel需要哪些技能

    如果你需要从一个excel中摘取部分数据,那么,直接打开excel,随后粘贴复制即可。如果你需要从100个excel中以相同的方法摘取部分数据,那么,你应当写一个python脚本,写脚本的时间,一定小于你手工操作100个excel的时间,这就是程序存在的价值和意义。

    读取excel,你使用xlrd这个库就足够了。

    第一步,打开文件

    第二步,获得sheet

    第三步,读取数据

    from xlrd import open_workbook

    book = open_workbook('stu.xlsx') # 打开文件

    sheet = book.sheet_by_name("学生信息") # 获得sheet

    # 读取数据

    编程语言,从来不会自动的解决某个实际应用问题,它只是提供最基础的操作,例如加减乘除。在这些基础操作的基础之上,人们封装了一些库,但这些库也仅仅是有针对性的提供一些业务层面的基础操作,具体应用中如何运用,每个人都可以有自己的想法。

    py-read-excel-1597761295-0.jpg

    读取excel里的数据,无非就下面三种方法

    读取某一行的数据

    读取某一列的数据

    读取某一个单元格的数据

    是不是有一点失望,python能做的事情似乎非常简单,并没有传说中的那么神奇?这就是职业程序员与业余们外汉对编程理解差异最大的地方。门外汉以为编程有魔法的力量,而职业程序员很清楚,那些所谓的魔法都是自己一行行代码编造出来的假象。

    现在,我来演示如何从这个excel中找出身高最高的那位同学

    方法1, 逐行遍历,比较身高

    从第二行开始按行读取数据,比较身高

    nrows = sheet.nrows

    max_height = 0

    stu_name = ""

    for i in range(1, nrows):

    row_data = sheet.row_values(i)

    if int(row_data[2]) > max_height:

    max_height = int(row_data[2])

    stu_name = row_data[0]

    print(stu_name) # 小刚

    方法2, 读取身高列,获得最大身高的索引

    先找到最大身高在身高列的索引位置,也就是这个身高所在的行,那么姓名列相同索引位置的值就是学生的姓名

    height_column = sheet.col_values(2)[1:]

    max_height = max(height_column)

    index = height_column.index(max_height) # 最大身高的索引

    stu_name =sheet.cell_value(index+1, 0) # 读取指定单元格

    print(stu_name) # 小刚

    两种读取最大身高学生姓名的方法里,我使用了按行读取,按列读取,和按单元格读取数据这三种方法。xlrd这个库只能帮到我们这些,剩下的,就要靠你自己去完成。如果到了这里,你就不知道如何继续下去,那么这就说明你仍然没有入门编程语言,你此前所学,都只是照猫画虎的皮毛,你还做不到像一个程序员一样去思考问题。

    该如何才能像一个程序员一样去思考问题呢,我认为,你需要像程序员一样接受训练,看过乒乓球比赛么,是不是一看就会,但是当你拿起拍子时,球总是不能按照你期望的轨迹去运动,你甚至打不到球,因为,你从未接受过这方面的训练,编程既是知识,也是手艺,你学了很多知识,但没学到什么手艺。

    你对python操作excel有任何的问题,或者实际的工作生活有这方面的需要,都可以来找我,我会尽力帮你解决。

    展开全文
  • 1. 最基本的读文件方法:?# File: readline-example-1.pyfile = open("sample.txt")while 1:line = file.readline()if not line:breakpass # do something一行一行得从文件读数据,显然比较慢;不过很省内存。在我的...

    copycode.gif

    copycode.gif

    1. 最基本的读文件方法:

    ?

    # File: readline-example-1.py

    file = open("sample.txt")

    while 1:

    line = file.readline()

    if not line:

    break

    pass # do something

    一行一行得从文件读数据,显然比较慢;不过很省内存。

    在我的机器上读10M的sample.txt文件,每秒大约读32000行

    2. 用fileinput模块

    ?

    # File: readline-example-2.py

    import fileinput

    for line in fileinput.input("sample.txt"):

    pass

    写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……

    3. 带缓存的文件读取

    ?

    # File: readline-example-3.py

    file = open("sample.txt")

    while 1:

    lines = file.readlines(100000)

    if not lines:

    break

    for line in lines:

    pass # do something

    这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!

    ————————————————————————————————————————————————————————————

    在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:

    ?

    # File: readline-example-5.py

    file = open("sample.txt")

    for line in file:

    pass # do something

    而在Python 2.1里,你只能用xreadlines迭代器来实现:

    ?

    # File: readline-example-4.py

    file = open("sample.txt")

    for line in file.xreadlines():

    pass # do something

    copycode.gif

    python逐行读取文本

    一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

    二、需要导入import os

    三、下面是逐行读取文件内容的三种方法:

    1、第一种方法:

    copycode.gif

    f = open("foo.txt") #返回一个文件对象

    line = f.readline() #调用文件的 readline()方法

    whileline:

    print line, #后面跟 ',' 将忽略换行符

    #print(line, end = '')  # 在 Python 3 中使用

    line =f.readline()

    f.close()

    copycode.gif

    2、第二种方法:

    与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。

    第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。

    for line in open("foo.txt"):

    print line,

    3、第三种方法:

    f = open("c:\\1.txt","r")

    lines = f.readlines() #读取全部内容 ,并以列表方式返回

    for line inlines

    print line

    四、一次性读取整个文件内容:

    file_object = open('thefile.txt')

    try:

    all_the_text =file_object.read()

    finally:

    file_object.close()

    五、区别对待读取文本 和 二进制:

    1、如果是读取文本

    读文本文件

    input = open('data', 'r')

    #第二个参数默认为r

    input = open('data')

    2、如果是读取二进制

    input = open('data', 'rb')

    读固定字节

    chunk = input.read(100)

    python3 按行读取并进行编辑

    def test(file): with open(file, 'r+') as a: with open(file, 'r+') as b: for line in a: b.write('hello ' + line)

    1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行

    第一个文件打开格式可以是:r,r+

    第二个文件打开格式可以是:r+

    2、文件必须open两次,因为每一次指针落点都要从头开始

    3、r+模式write时会覆盖原来内容,但是

    在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。

    ————————————————

    需要安装xlwt库,可以用如下命令安装:

    pip install xlwt

    1

    示例文本:

    100 -494 td_error 0.6692215

    200 318 td_error 0.57682794

    300 57 td_error 0.45037615

    400 260 td_error 0.42214713

    500 586 td_error 0.45073098

    600 615 td_error 0.4728373

    700 731 td_error 0.48083866

    800 802 td_error 0.3751492

    900 440 td_error 0.4249844

    1000 430 td_error 0.36427215

    12345678910

    参考代码:

    import xlwt

    import codecs

    input_txt = 'demo.txt'

    output_excel = 'demo.xls'

    sheetName = 'Sheet1'

    start_row = 0

    start_col = 0

    wb = xlwt.Workbook(encoding = 'utf-8')

    ws = wb.add_sheet(sheetName)

    f = open(input_txt, encoding = 'utf-8')

    row_excel = start_row

    for line in f:

    line = line.strip('\n')

    line = line.split(' ')

    print(line)

    col_excel = start_col

    len_line = len(line)

    for j in range(len_line):

    print (line[j])

    ws.write(row_excel,col_excel,line[j])

    col_excel += 1

    wb.save(output_excel)

    row_excel += 1

    f.close

    1234567891011121314151617181920212223242526272829303132

    代码执行完后,会生成一个excel文件

    ————————————————

    展开全文
  • 展开全部python读写excel文件2113要用到两个库:5261xlrd和xlwt,首先下载安装这两个库。1、#读取Excelimport xlrddata = xlrd.open_workbook(excelFile)table = data.sheets()[0]nrows = table.nrows #行数4102...

    展开全部

    python读写excel文件2113要用到两个库:5261xlrd和xlwt,首先下载安装这两个库。

    1、#读取Excel

    import xlrd

    data = xlrd.open_workbook(excelFile)

    table = data.sheets()[0]

    nrows = table.nrows #行数4102

    ncols = table.ncols #列数1653

    for i in xrange(0,nrows):

    rowValues= table.row_values(i) #某一行数据

    for item in rowValues:

    print item

    2、写Excel文件

    '''往EXCEl单元格写内容,每次写一行sheet:页签名称;row:行内容列表;rowIndex:行索引;

    isBold:true:粗字段,false:普通字体'''

    def WriteSheetRow(sheet,rowValueList,rowIndex,isBold):

    i = 0

    style = xlwt.easyxf('font: bold 1')

    #style = xlwt.easyxf('font: bold 0, color red;')#红色字体

    #style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;') # 设置Excel单元格的背景色为黄色,字体为粗体

    for svalue in rowValueList:

    strValue = unicode(str(svalue),'utf-8')

    if isBold:

    sheet.write(rowIndex,i,strValue,style)

    else:

    sheet.write(rowIndex,i,strValue)

    i = i + 1

    '''写excel文件'''

    def save_Excel(strFile):

    excelFile = unicode(strFile, "utf8")

    wbk = xlwt.Workbook()

    sheet = wbk.add_sheet('sheet1',cell_overwrite_ok=True)

    headList = ['标题1','标题2','标题3','标题4','总计']

    rowIndex = 0

    WriteSheetRow(sheet,headList,rowIndex,True)

    for i in xrange(1,11):

    rowIndex = rowIndex + 1

    valueList = []

    for j in xrange(1,5):

    valueList.append(j*i)

    WriteSheetRow(sheet,valueList,rowIndex,False)

    wbk.save(excelFile)

    style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;')

    在设置上Excel单元格的背景色时,fore_colour 支持的颜色是有限的,仅支持一下颜色

    aqua 0x31

    black 0x08

    blue 0x0C

    blue_gray 0x36

    bright_green 0x0B

    brown 0x3C

    coral 0x1D

    cyan_ega 0x0F

    dark_blue 0x12

    dark_blue_ega 0x12

    dark_green 0x3A

    dark_green_ega 0x11

    dark_purple 0x1C

    dark_red 0x10

    dark_red_ega 0x10

    dark_teal 0x38

    dark_yellow 0x13

    gold 0x33

    gray_ega 0x17

    gray25 0x16

    gray40 0x37

    gray50 0x17

    gray80 0x3F

    green 0x11

    ice_blue 0x1F

    indigo 0x3E

    ivory 0x1A

    lavender 0x2E

    light_blue 0x30

    light_green 0x2A

    light_orange 0x34

    light_turquoise 0x29

    light_yellow 0x2B

    lime 0x32

    magenta_ega 0x0E

    ocean_blue 0x1E

    olive_ega 0x13

    olive_green 0x3B

    orange 0x35

    pale_blue 0x2C

    periwinkle 0x18

    pink 0x0E

    plum 0x3D

    purple_ega 0x14

    red 0x0A

    rose 0x2D

    sea_green 0x39

    silver_ega 0x16

    sky_blue 0x28

    tan 0x2F

    teal 0x15

    teal_ega 0x15

    turquoise 0x0F

    violet 0x14

    white 0x09

    yellow 0x0D"""

    另外一种方式是 用pyExcelerator

    resize,m_lfit,w_600,h_800,limit_1

    from pyExcelerator import *# excel 第一行数据excel_headDatas = [u'发布时间', u'文章标题', u'文章链接', u'文章简介']

    articles =[

    {u'发布时间':u'2017年5月9日',

    u'文章标题':u'Python项目实战教程:国内就能访问的google搜索引擎',

    u'

    u'文章简介':u'大家可以留言、想了解python那个方向的知识、不然我也不知道'},

    {u'发布时间':u'2017年5月4日',

    u'文章标题':u'对于学习Django的建议、你知道的有那些',

    u'文章链接':',

    u'文章简介':u'随着Django1.4第二个候选版的发布,虽然还不支持Python3,但Django团队已经在着手计划中,据官方博客所说,Django1.5将会试验性的支持python3'}

    ]# 定义excel操作句柄excle_Workbook = Workbook()

    excel_sheet_name = time.strftime('%Y-%m-%d')

    excel_sheet = excle_Workbook.add_sheet(excel_sheet_name)

    index = 0#标题for data in excel_headDatas:

    excel_sheet.write(0, index, data)

    index += 1index = 1#内容for article in articles:

    colIndex = 0 for item in excel_headDatas:

    excel_sheet.write(index, colIndex, article[item])

    colIndex += 1

    index += 1#保存test.xlsx到当前程序目录excle_Workbook.save('test.xlsx')# db = mongoDB.mongoDbBase()# db.Get_information_stat()

    展开全文
  • openpyxl是python操作excel文件的一个库,既能读也能写,只支持xlsx格式.以下面的excel表格为例,要求按行读取和按列读取首先导入openpyxl库安装 pip install openpyxlopenpyxl中有方法可以获取最小行数最大...

    相信经过openpyxl基础知识的学习后,一些简单操作已经难不倒大家了。按行和按列读取excel又该怎么操作呢,今天小编就结合案例为大家讲解。

    openpyxl是python操作excel文件的一个库,既能读也能写,只支持xlsx格式.

    以下面的excel表格为例,要求按行读取和按列读取

    1603706030396565.png

    首先导入openpyxl库

    安装 pip install openpyxl

    1603706061687683.png

    openpyxl中有方法可以获取最小行数最大行数和最小列数最大列数

    1603706108342556.png

    按行读取:

    #按行读取

    for i in range(minrow,maxrow+1):

    for j in range(mincol,maxcol+1):

    cell=sheet.cell(i,j).value

    print(cell,end=" ")

    print()

    打印出来如下:

    1603706154150212.png

    按列读取:

    #按列读取

    for m in range(mincol,maxcol+1):

    for n in range(minrow,maxrow+1):

    cell=sheet.cell(n,m).value

    print(cell,end=" ")

    print()

    打印出来如下:

    1603706193662008.png

    这里用到的是sheet.cell(i,j).value的方法,第一行第一列是sheet.cell(1,1).value

    它是从下标为1开始算起的

    sheet.cell(1,1) 取出来的是第一个单元格的对象

    1603706217813172.png

    打印出来是A1这个单元格

    所以要用.value的方法来取到单元格的值。

    了解以上内容,基本上大家对openpyxl按行和按列读取有一定了解。下篇将为大家带来openpyxl写入excel,敬请期待。更多Python学习推荐:PyThon学习网教学中心

    展开全文
  • 'r') as f1:#打开txt文档 lines = f1.readlines()#读取所有行内容 n = -1#定义一个变量 for x in lines:#逐行读取 n=n+1 li.append(x[:-1])#去掉回车符 y= x.split#以空格分字符 for i in range(len(title_index)):...
  • python逐行读取excel数据

    千次阅读 2020-08-14 13:55:46
    import os import xlrd data = xlrd.open_workbook(os.path.join('/home/imed002/PycharmProjects/refuge_classification/data', 'glaucoma_class.xlsx')) table = data.sheets()[0] nrows = table.nrows ...
  • 1. 读取execl1.前提需要安装xlrd模块,这个在网上可以找安装教程,这里就不写了2. 打开表格3. 读取表格的sheet4. 按行读取数据或者列读取数据或者单元格读取数据实际操作:import xlrdimport xlwtfrom xlutils.copy ...
  • 读首先是读文件,有readline和readlines两种方式,readline是逐行读,readlines是直接读入所有行返回一个列表,当文件很大时,readlines会很慢,不建议使用。再将读进来的每行用json.loads()解析,会返回一个字典。...
  • python逐行读取xls文件

    千次阅读 2019-12-25 15:06:51
    # -*- coding:utf-8 -*...data = xlrd.open_workbook('成分信息.xls') # 打开xls文件 table = data.sheets()[0] nrows = table.nrows # 获取表的行数 for i in range(nrows): # 循环逐行打印 # 跳过第一行 if i =...
  • 1. 最基本的读文件方法:?# File: readline-example-1.pyfile = open("sample.txt")while 1:line = file.readline()if not line:breakpass # do something一行一行得从文件读数据,显然比较慢;不过很省...
  • Python使用pandas逐行读取Excel

    千次阅读 2019-12-20 16:26:01
    1. 安装pandas pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 2. 逐行读取数据示例 try: sheet = pandas.read_excel("my_excel.xlsx", "my_sheet") for row ...
  • 前面程序展示的数据都是...csv 文件格式的本质是一种以文本存储的表格数据(使用 Excel 工具即可读写 csv 文件)。csv 文件的每行代表一行数据,每行数据中每个单元格内的数据以逗号隔开。Python 提供了 csv 模块来...
  • 背景Background:我的txt文件里面存放的是搜索词,由于原始的query(搜索词)都是用/或者、来分割词,而我要达到的是每个词语是单独的一行,并且写入txt第一步:按行读取txt文件s = []f = open('querylist.txt','r') ...
  • 背景Background:我的txt文件里面存放的是搜索词,由于原始的query(搜索词)都是用/或者、来分割词,而我要达到的是每个词语是单独的一行,并且写入txt第一步:按行读取txt文件s = []f = open('querylist.txt','r') ...
  • '总结'] ['啊', '啊吧', '啊C', '啊d', '啊e', '0.00%'] ['啊水电', '的', '0', '0', '3', '0.00%'] ['ddd', '0', '0', '0', '3', '0.00%'] csv.reader返回一个reader对象,该对象将逐行遍历f(就是打开的文件描述...
  • 读取excel表格数据需要用到xlrd或者openpyxl模块,所以先安装xlrd/openpyxl:直接pip install xird/openpyxlxlrd和openpyxl区别:1.xlrd能处理的最大行数为65535,超过这个行数的文件就需要用到openpyxl,openpyxl...
  • python如何循环读取excel里面每个单元格的内容,我......如何读取excel文件网上的版本很多,在xlrd模块基础上,找到一些源码:[python]view plaincopyimportxdrlib,sysimportxlrddefopen_excel(file="C:/Users/...
  • 背景Background: 我的txt文件里面存放的是搜索词,由于...第一步:按行读取txt文件 s = [] f = open('querylist.txt','r') #由于我使用的pycharm已经设置完了路径,因此我直接写了文件名 for lines in f: # ...
  • 原博文2020-03-30 15:52 −一般情况下我们在利用write函数进行文件的写入的时候,写入的下一个字符串或者数字等会覆盖之前已经写入到文件当中的字符串或者数字,我们如何解决这个问题呢?方法很简单,在使用open函数...
  • Excel a.xlsx数据格式为: ['K52', 'B36', 'J06', 'J11'](这是第一行第一个单元格) ['Z01', 'K07', 'J11', 'K07'](这是第二行第一个单元格) ['K02', 'J06', 'J40', 'J40', 'J40', 'J40', 'J40', 'J11', '...
  • python 如何读取excel文件 将每一行存为数组from xlrd import open_workbookwb=open_workbook(r'd:/222.xlsx')tb=wb.sheets()[0]data=[]for r in range(tb.nrows):val=[]for c in range(tb.ncols):val.append(tb....
  • 如何用python将数据写入excel表格首先win2com模块,在Python 3.1下运下代码即可,随意转载但希望注明:CD-one的实例 注解from win32com.client import DispatchxlApp = Dispatch('Excel.Application')xlApp.Visible ...
  • 于是自己动手写了个脚本转为excel表格,脚本亲测很好用,分享出来。txt内容格式如下,每行看起来跟python的字典很像。 {k1:v1,k2:v2,......} {k1,x1,k2:x2,......} import codecs,pandas as pd ###定义文件...
  • 由于excel版本不同,python处理的时候选择的库页不同。一、操作对应版本表格需要用到的库1、操作xls格式的表格文件,需要用到的库如下:读取:xlrd写入:xlwt修改(追加写入):xlutils2、操作xlsx格式的表格文件,...
  • 广告关闭腾讯云11.11云上盛惠 ,...os.remove(dest.txt) # 以写的方式打开文件,如果文件不存在,就会自动创建file_write_obj = open(dest.txt, w)var =adfssfile_write_obj.writelines(var)file_write_obj.write(n...
  • How to write a list of list into excel using python 3?new_list = [["first", "second"], ["third", "fourth"]]with open("file_name.csv", 'w') as f:fc = csv.writer(f, lineterminator='\n')fc.writerows(new_...
  • python从txt文档逐行读取数据并按规则写入excel2018-09-19用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)前几天接到一个任务,从gerrit上通过ssh命令...
  • 读txtfile_obj=open("1.txt","rb")#mode=r/wtxt=file_obj.read()//一次全部读取,基本能covertxt=file_obj.readline()//逐行读取,带有/R/Ntxt=file_obj.readline()//逐行读取下一行,带有/R/Ntxt=file_obj....
  • 使用python3读取处理excel表的数据内容如何对内容求平均值先说下概述:平就合平均数的值。(a1 a2 ……an)/na1,a2,……,an的平均值。简单算均数。么一组数字10、20、30、40、50那么它们的算术平均值是(10 20 30 ...
  • Python处理Excel文件主要是第三方模块库xlrd、xlwt、pyexcel-xls、xluntils和pyExcel-erator等,此外Pandas中也带有可以读取Excel文件的模块(read_excel)。基于扩展知识的目的,本文使用xlrd模块读取Excel数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,754
精华内容 701
关键字:

python逐行读取excel文件

python 订阅