IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python对文件的简单使用及openpyxl操作excel文件 -> 正文阅读

[Python知识库]python对文件的简单使用及openpyxl操作excel文件

python的文件操作

一、文件的操作流程

  • 第一,建立文件对象。
  • 第二,调用文件方法进行操作。
  • 第三,关闭文件。

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))
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:28:59  更:2022-10-17 12:33:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:45:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码