python-3.x - 为什么 pd.ExcelWriter 在设置 mode='a' 时如果不存在则无法创建新文件
问题描述
我从 Python 中学到了 - 文件 I/O
mode='a'
:打开要追加的文件。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于附加模式。如果文件不存在,它会创建一个新文件进行写入。
那么我在哪里可以找到关于为什么如果文件不存在pd.ExcelWriter(
mode='a不能创建文件的解释?)
如果pd.ExcelWriter('path+filename', mode='a')
不创建新文件。还有其他更好的方法吗?我能找到的唯一方法是
if os.path.exists(filename):
with pd.ExcelWriter(filename, mode='a') as writer:
"blabla"
else:
with pd.ExcelWriter(filename, mode='w') as writer:
"blabla"
解决方案
.xlsx
文件是具有特定预定结构的压缩文件。将任何内容附加到现有.xslx
文件是没有意义的。Excel 将忽略您附加的内容,或者根本拒绝打开文件。
如果要向现有.xlsx
文件添加新工作表,则必须使用类似的方法读取文件openpyxl
并自己修改其内部结构。
open()
使用模式调用"a"
适用于文本文件和直接面向记录的二进制文件,在这些文件中简单地将字节添加到末尾是有意义的。更复杂的文件结构属于应用程序,而不是文件系统。
推荐阅读
- sql - 如何在 SQL 提示中禁止位图索引?
- r - 为什么R函数解析用逗号代替分号?
- java - 为什么表格不会显示在本地主机(jsp 文件)中?
- javascript - 如何使用 jquery 将签入和签出时间数据保存在 mysql 中?
- python - 如何将多个转换应用于 Python 字典中的同一个键
- r - html输出显示每个函数的描述
- javascript - jQuery购物车数量更新按钮?
- node.js - 如何从 NodeJS 管道传输到 NodeJS?
- sql - 在 ASP.NET MVC 中更新表问题
- python - 使用 tabula 和 python 读取 pdf 文件时数据丢失