Python文件简单操作及openpyxl操作excel文件详解
作者:小蛮幺_kongkong 发布时间:2023-04-26 14:23:22
一、文件的操作流程
第一,建立文件对象。
第二,调用文件方法进行操作。
第三,关闭文件。
1、打开文件
用python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
f = open(file_name [, access_mode])
file_name:文件名,字符串值
access_mode:打开文件的模式,如只读,写入,追加等,这个参数是非强制的,默认文件访问模式为只读r。
# 例子
f = open(r'E:\文件目录\文件的简单操作.py')
f = open('E:\\文件目录\\文件的简单操作.txt')
f = open('E:/文件目录/文件的简单操作.py')
f = open('./文件目录/' + str(file_name), 'w')
print("文件名: ", f.name)
print("是否已关闭 : ", f.closed)
print("访问模式 : ", f.mode)
文件的访问模式如下表所示,'r’读,'w’覆盖写,'a’追加写。
模式 | 描述 |
---|---|
r | 以只读方式打开文件。这是默认模式 |
rb | 以二进制格式打开文件用于只读。这是默认模式 |
r+ | 打开文件用于读写 |
rb+ | 以二进制格式打开文件用于读写 |
w | 打开文件只用于写入。若文件存在将其覆盖,若不存在创建新文件 |
wb | 以二进制格式打开文件只用于写入。若文件存在将其覆盖,若不存在创建新文件 |
w+ | 打开文件用于读写,若文件存在将其覆盖,若不存在创建新文件 |
wb+ | 以二进制格式打开文件用于读写,若文件存在将其覆盖,若不存在创建新文件 |
a | 打开文件用于追加。若文件存在新的内容会写入已有内容之后,若不存在创建新文件进行写入 |
ab | 以二进制格式打开文件用于追加。若文件存在新的内容会写入已有内容之后,若不存在创建新文件进行写入 |
a+ | 打开文件用于读写。若文件存在,文件打开时会是追加模式,若不存在创建新文件用于读写 |
ab+ | 以二进制格式打开文件用于追加。若文件存在,文件打开时会是追加模式,若不存在创建新文件用于读写 |
2、文件操作——读、写、修改
(1)读:read()
读取整篇文章内容
# 打开一个文件
f = open("file.txt", "r",encoding='utf8')
f_read = f.read() # 通过read()进行读取
print(f_read)
# 关闭打开的文件
f.close()
读取指定数量的字符
read()方法指定需要读取的字符数量,无论一个英文字母还是一个汉字都是一个字符。
f_read = f.read(8) # 读取8个字符
读取一行内容
readline读取一行代码,读取到第一个换行符就停止。
f_read = f.readline() # 读取一行内容。
f_read1 = f.readline() # 再读取一行内容。
把内容以列表的形式输出
readlines会把内容以列表的形式输出。
f_read = f.readlines() # 以列表的形式输出。
(2)写:write()
文件操作中的写有两种:
w:覆盖写
a:追加写
write()方法可将任何字符串(Python字符串也可以是二进制数据)写入一个打开的文件。write()方法不会在字符串的结尾添加换行符(‘\n’)。
覆盖写(w)
对文件的内容进行覆盖写入
# 打开一个文件
f = open('file.txt','w',encoding='utf8')
f_w = f.write('hello world')
print(f_w) # 输出写入多少字符
# 关闭打开的文件
f.close()
追加写(a)
在文件末尾进行文件的追加写入
# 打开一个文件
f = open('file.txt','a',encoding='utf8')
f_w = f.write('python pandas request')
print(f_w) # 输出写入多少字符
# 关闭打开的文件
f.close()
写入可迭代对象(字符串、列表、元祖、字典)
seq = ["文件操作教程 1\n", "文件操作教程 2"]
f.writelines(seq)
(3)修改:replace()
f1 = open('file.txt','r',encoding='utf8') # 原文件
f2 = open('file2.txt','w',encoding='utf8') # 新文件
for line in f1:
if "hello" in line:
line = line.replace("hello","hi python")
f2.write(line)
# 关闭文件
f1.close()
f2.close()
with语句
当with代码块执行完毕时,会自动关闭文件释放内存资源,不用特意加f.close(),而且可以同时对多个文件同时操作。
用with语句重写修改文件中的代码:
with open('file.txt','r',encoding='utf8') as f1,open('file2.txt','w',encoding='utf8') as f2:
for line in f1:
if "hello" in line:
line = line.replace("hello","hi python")
f2.write(line)
3、关闭文件
file对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭文件,这之后便不能再进行写入。
# 打开一个文件
f = open("file.txt", "w")
# 关闭打开的文件
f.close()
二、openpyxl操作excel文件
在openpyxl里面,一个Excel文件对应着一个Workbook对象, 一个Sheet对应着一个Worksheet对象,而一个单元格对应着一个Cell对象。Workbook()创建空白excel,load_workbook(file_name)加载已存在的excel,save()保存Workbook对象。
1、导入模块
import openpyxl
2、创建文件
# 创建空白excel
wb = openpyxl.Workbook()
3、打开已有excel文件
# 打开已有的xxx.xlsx文件
wb = openpyxl.load_workbook('./文件目录/' + str(file_name))
4、创建表
sheet0 = wb.create_sheet(title='表1', index=0)
sheet1 = wb.create_sheet(title='表2', index=1)
sheet2 = wb.create_sheet(title='表3', index=2)
sheet3 = wb.create_sheet(title='表4', index=3)
5、操作单元格
# 通过单元格名称设置,指定单元格的值
sheet0["A1"]='当前时间'
sheet0["B1"]="数据类型"
# 通过行列坐标设置,指定单元格的值
d = sheet0.cell(row=1, column=1, value='当前时间')
# 设置单元格宽度
sheet0.column_dimensions['A'].width = 30.0
sheet0.column_dimensions['B'].width = 30.0
6、设置整行数据
time = datetime.datetime.now().strftime('%F %T') # '2022-10-12 20:05:23'
#time1 = time.strftime('%a %b %d %H:%M:%S %p %Y', time.localtime(time.time())) # (星期 月 日 时:分:秒 上午/下午 年)'Wed Sep 07 17:43:25 PM 2022'
#time = datetime.datetime.now().strftime('%F %T').split(':') # ['2022-09-07 17', '42', '56']
#time_str = time[0] + '-' + time[1] + '-' + time[2] # '2022-09-07 17-42-56'
sheet0.append([time, 'int'])
7、保存文件
wb.save('./文件目录/' + str(file_name))
来源:https://blog.csdn.net/weixin_40400335/article/details/127275870
猜你喜欢
- 如何结束Python的子线程和子进程结束子线程的方法:这个是搬运其他大神的代码,鄙人也不知道原理,反正拿来主义,暂时没发现什么缺点,先用着再
- 说明:关于类的这部分,我参考了《Learning Python》一书的讲解。创建类创建类的方法比较简单,如下:class Person:&n
- pip是常用的python包管理工具,用python的同学,都离不开pip ~~第一种 在系统自带的python2.7的路径下pip是pyt
- 张同学 10.4号开始发视频,视频的点赞量一直很高,11.17 号的视频达到了顶峰,收获 250w 个赞,之后关注量也开启了暴涨。所以挖掘
- 我们很少会一次性从数据库中取出所有的数据;通常都只针对一部分数据进行操作。 在Django API中,我们可以使用`` filter()``
- 一、python压缩模块简介python直接通过内置压缩模块可以直接进行压缩文件的创建;内置模块 zipfile/rarfile 完成压缩文
- 前言在机器学习中,我们会经常和矩阵打交道。在矩阵的运算中,python默认的输出是浮点数,但是如果我们想要矩阵的元素以分数的形式显示,可以通
- 本文实例为大家分享了python实现最速下降法的具体代码,供大家参考,具体内容如下代码:from sympy import *import
- 关于asp缓存函数,类什么的,在网上可以说笔笔皆是,为啥我要不辞辛苦去写一个呢?大概看了下,各有各的优点吧,可是大部分好像不可以缓存数据额,
- 我用textarea提交大量的阿数据 我开始字段类型选的是mediumtext,数据有丢失 后来我改成了longtext,数据依然丢失, 而
- 进行访问MySQL数据库的方法有很多种,下面将向大家介绍一些很简单实用的用的方法和示例与大家一起分享。方法一:使用MYSQL推出的MySQL
- Gradio 是做什么的?先决条件:Gradio 需要 Python 3.7 或更高版本,仅此而已!gradio.app/quickstar
- 怎么样才能设计出漂亮的网页?怎么样才能做好网页设计工作,现在许多人还停留在网页制作的水平上,认为只要用好了网页制作软件,就能搞好网页设计了,
- 有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pi
- 您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事
- 一、网络结构的可视化我们训练神经网络时,除了随着step或者epoch观察损失函数的走势,从而建立对目前网络优化的基本认知外,也可以通过一些
- python join 和 split方法简单的说是:join用来连接字符串,split恰好相反,拆分字符串的。.join()join将 容
- 需求是需要用python往 SqlServer中的image类型字段中插入二进制图片核心代码,研究好几个小时的代码:安装pywin32,ad
- 首先从 ueEditor官网 下载最新版本的包,目前官网上提供了ASP、.NET、PHP、JSP版本的,django版本只有一个第三方个人开
- 我就废话不多说了,直接上代码吧:package mainimport ("flag""fmt"&qu