文件对象
Python内置的 open() 函数可以用于打开指定文件 ,该函数会返回一个文件对象(该对象包含了当前文件拥有的属性信息,相当于文件句柄)。参数file为要创建或打开文件的文件名称,参数mode用于指定文件的打开模式(可选),参数buffering用于指定对文件做读写 *** 作时是否使用缓冲区。在打开文件之后就可调用文件对象的属性和方法,完成对文件的读/写 *** 作之后最后需要关闭该文件,通过文件对象的close() 函数来实现即可。
打开模式
文件打开是可以指定其打开的模式,该参数通过mode来指定默认模式为只读(r)。选择不同的打开模式决定了后续可以对文件进行 *** 作,如果使用 r 模式打开的文件则只能读取文件而无法修改文件内容。open()提供了多种打开模式,下面列出了对应的打开模式和说明:1首先说明我是使用的python35,我的office版本是2010,首先打开dos命令窗,安装必须的两个库,命令是:
pip3 install xlrd
Pip3 install xlwt
2准备好excel,例如我的一个工作文件,我放在D盘/百度经验/11xlsx,只有一个页签A,内容是一些销售数据
3打开pycharm,新建一个excelpy的文件,首先导入支持库
import xlrdimport xlwt
4针对刚入门的新手,先介绍三个知识,第一个:获取excel的sheet名称,第二:获取excel行数与列数,第三:获取第几行第几列的具体值,这是最常用的三个知识点
5贴出代码,具体分析:
(1)要 *** 作excel,首先得打开excel,使用open_workbook(‘路径’)
(2)要获取行与列,使用nrows(行),ncols(列)
(3)获取具体的值,使用cell(row,col)value
workbook=xlrdopen_workbook(r'E:11xlsx')print (workbooksheet_names()) sheet2=workbooksheet_by_name('A') nrows=sheet2nrows ncols=sheet2ncols print(nrows,ncols) cell_A=sheet2cell(1,1)value print(cell_A)
6要在excel里写入值,就要使用write属性,重点说明写入是用到xlwt这个支援库,思路是先新建excel,然后新建页签B,然后将一组数据写入到B,最后保存为excelxls,这里建议保存为2003的格式,大部分电脑都能打开,特别注意保存的excel的路径是在python工作文件的目录下面,贴出代码:
stus = [['年', '月'], ['2018', '10'], ['2017', '9'], ['2016', '8']]Excel = xlwtWorkbook() # 新建excelsheet = Exceladd_sheet('B') #新建页签Brow = 0for stu in stus: col = 0 for s in stu: sheetwrite(row, col, s) #开始写入 col = col + 1 row = row + 1Excelsave('Excelxls') #保存
关于如何用python读取excel文件,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。#encoding:utf-8
import os
#设置文件夹所在路径,我这里设置哦当前路径
path = '/'
#列出路径下所有的一级目录+文件
files = oslistdir(path)
print files
#利用递归,列出目录下包括子目录所有的文件及文件夹(但是没有分级,如果需要分级,自己写吧)
files1 = []
def listfiles(path):
for i in oslistdir(path):
if ospathisdir(path+i):
files1append(i)
listfiles(path+i)
else:
files1append(i)
listfiles(path)
print files1
python读取文件内容的方法:
一最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:
all_the_text = open('thefiletxt')read( )
# 文本文件中的所有文本
all_the_data = open('abinfile','rb')read( )
# 二进制文件中的所有数据
为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成 *** 作之后可以迅速关闭文件,防止一些无用的文件对象占用内存。举个例子,对文本文件读取:
file_object = open('thefiletxt')
try:
all_the_text = file_objectread( )
finally:
file_objectclose( )
不一定要在这里用Try/finally语句,但是用了效果更好,因为它可以保证文件对象被关闭,即使在读取中发生了严重错误。
二最简单、最快,也最具Python风格的方法是逐行读取文本文件内容,并将读取的数据放置到一个字符串列表中:list_of_all_the_lines = file_objectreadlines( )
这样读出的每行文本末尾都带有"\n"符号;如果你不想这样,还有另一个替代的办法,比如:
list_of_all_the_lines = file_objectread( )splitlines( )
list_of_all_the_lines = file_objectread( )split('\n')
list_of_all_the_lines = [Lrstrip('\n') for L in file_object]
1、Python
Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。
2、基本概念
Python(KK 英语发音:/'paɪθɑn/, DJ 英语发音:/ˈpaiθən/)是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明。
11 读取整个文件
要读取文件,需要一个包含几行文本的文件(文件PI_DESCtxt与file_readerpy在同一目录下)
PI_DESCtxt
31415926535
8979323846
2643383279
5028841971
file_readerpy
with open("PI_DESCtxt") as file_object:
contents = file_objectread()
print(contents)
我们可以看出,读取文件时,并没有使用colse()方法,那么未妥善的关闭文件,会不会导致文件收到损坏呢?在这里是不会的,因为我们在open()方法前边引入了关键字with,该关键字的作用是:在不需要访问文件后将其关闭
12文件路径
程序在读取文本文件的时候,如果不给定路径,那么它会先在当前目录下进行检索,有时候我们需要读取其他文件夹中的路径,例如:
现在文件PI_DESCtxt存储在python目录的子文件夹txt中
那么我们读取文本内容的代码得修改为:
with open("txt\PI_DESCtxt") as file_object:
contents = file_objectread()
print(contents)
给open参数传递的参数得给相对路径
在Windows中,使用反斜杠(\),但是由于python中,反斜杠被视为转义字符,在Windows最好在路径开头的单(双)引号前加上r
相对路径:即相对于程序文件的路径
绝对路径:即文本在硬盘上存储的路径
使用绝对路径的程序怎么写呢 ?
with open(r"D:\python\txt\PI_DESCtxt") as file_object:
contents = file_objectread()
print(contents)
13逐行读取
读取文件时,可能需要读取文件中的每一行,要以每一行的方式来检查文件或者修改文件,那么可以对文件对象使用for循环
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
for line in file_object:
print(line)
程序运行结果如下:
通过运行结果我们可以看出,打印结果中间有很多空白行,这些空白行是怎么来的呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加一个换行符,因此每行末尾就有2个换行符:一个来自文件,另外一个来自print,消除这些换行符,只需要使用方法rstrip()
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
for line in file_object:
print(linerstrip())
打印结果
通过运行结果我们可以看出,打印结果中间有很多空白行,这些空白行是怎么来的呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加一个换行符,因此每行末尾就有2个换行符:一个来自文件,另外一个来自print,消除这些换行符,只需要使用方法rstrip()
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
for line in file_object:
print(linerstrip())
打印结果
14创建一个包含文件各行内容的列表
使用关键字with时,open()返回的文件对象只能在with代码块可用,如果要在with代码块外访问文件的内容,可在with块中将文件各行存储在一个列表,并在with代码块外使用该列表
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
lines = file_objectreadlines()for line in lines:
print(linerstrip())
15使用文件的内容
在上面一节中我们提到把数据提取到内存中,那么我们就可以对数据进行随心所欲的 *** 作了
需要:将圆周率连在一起打印出来(删除空格),并打印其长度
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
lines = file_objectreadlines()pi_str = ''for line in lines:
pi_str += linestrip()print(pi_strrstrip())print(len(pi_strrstrip()))
file_path = 'txt\PI_DESCtxt'with open(file_path) as file_object:
lines = file_objectreadlines()pi_str = ''for line in lines:
pi_str += linestrip()print(pi_strrstrip())print(len(pi_strrstrip()))
注意最后print语句并没有缩进,如果是缩进的话就会每取一行打印一次
打印效果如下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)