input输入表头保存excel文件
input输入表头

input输入表头
(input内除了/,空格 回车 标点符号等
全部作为单元格分隔符)保存/storage/emulated/0/代码文件/
没有就创建文件名命名方法:编号. 库 时间戳
嗨!听说你有个需求,想根据用户输入的内容创建一个Excel表格,并按照指定的命名方法来保存这个文件。哈哈!下面就给你看一个示例代码,让你瞧瞧是怎么做到的:
import pandas as pd
import os
import re
import time# 获取用户输入
header = input("请输入表头内容:")# 使用正则表达式替换除了斜杠、空格、回车和标点符号之外的字符为空格
header = re.sub(r'[^\w\s/]', ' ', header)# 使用空格作为分隔符,将表头拆分成列表
header_list = header.split()# 创建空的DataFrame
df = pd.DataFrame()# 在DataFrame中添加表头
df.columns = header_list# 创建保存目录
directory = '/storage/emulated/0/代码文件/'
if not os.path.exists(directory):os.makedirs(directory)# 生成文件名
file_name = '{}.{}_{}.xlsx'.format('编号', '库', int(time.time()))# 保存Excel文件
excel_file = os.path.join(directory, file_name)
df.to_excel(excel_file, index=False)
首先,我们要获取用户输入的表头内容。嗯,我会不厌其烦地把这个内容转换成Excel表格能接受的样子,去掉一些有点奇怪的符号。
然后,我们把处理好的表头放进一个全新而空白的Excel表格中,让它在那里等着,耐心地等着。
接下来,我们要创建一个特别的目录,为了保存这个特别的Excel文件。如果这个目录已经存在,就别管它了;如果不存在,我会亲自帮你建立起来。
让我们看看这段代码在“生成Excel文件”这个过程中进行了哪些操作:
开始
├─ 获取用户输入表头内容
│ └─ 干掉不需要的字符
├─ 拆分表头为列表
├─ 创建空的DataFrame
├─ 将表头添加到DataFrame中
├─ 创建保存目录
│ ├─ 如果目录不存在,创建该目录
│ └─ 如果目录已经存在,直接进入下一步
├─ 生成文件名
│ ├─ 包括一个编号
│ ├─ 一个库
│ └─ 当前时间的整数形式
├─ 保存Excel文件
│ ├─ 将DataFrame保存为Excel格式
│ ├─ 不要在Excel中显示行号
│ └─ 保存文件到指定目录下
└─ 结束
现在是时候给你的Excel文件起个独一无二的名字了!名字里包含一个编号,还有一个库,最后再加上当前的时间,这样才够酷对吧!
最后一步,就是把这个充满了期待的Excel文件保存起来了。我会小心翼翼地将这个表格以Excel格式保存好,并告诉它不要在Excel中显示行号。然后,我会把它放到我们刚刚特地创建的目录里,好让你一眼就能找到。
哈哈,到此为止!任务完成了,我们成功地根据用户需求创建了一个带有特别命名的Excel文件。感觉很有成就感对吧!但是我们输入出错了

这是为什么?❓
出现错误的原因是在创建空的DataFrame后,没有正确地设置表头。在设置表头时,长度不匹配导致了ValueError。
问题出在这一行代码:
df.columns = header_list

为了解决这个问题,你需要先手动为DataFrame添加一行空数据,然后再设置表头。修改的代码如下:
# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame([[]])# 在DataFrame中添加表头
df.columns = header_list
这样修改后,你应该能够看到新的错误❌答案

根据你提供的错误信息,问题仍然是由于长度不匹配导致的ValueError。根据错误信息,预期的轴(Expected axis)应该有0个元素,但新值(new values)却有3个元素。
这说明你的header_list列表长度为3,但是空的DataFrame并没有指定任何轴。
为了解决这个问题,请按照以下步骤修改代码:
- 创建一个空的DataFrame,并指定一个行(axis=0)。
- 在DataFrame中添加表头,确保表头与header_list的长度相匹配。
修改的代码如下:
# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame(columns=header_list)# 保存Excel文件
excel_file = os.path.join(directory, file_name)
df.to_excel(excel_file, index=False)

这样修改后,可以看到我们终于不再报错了。

你应该能够成功设置表头并继续执行后续的操作。

我们胜利了
修改后的代码为
import pandas as pd # 导入pandas库,用来玩转数据
import os # 导入os模块,和电脑文件玩耍
import re # 导入re模块,用来和字符们搞点小花样
import time # 导入time模块,和时间交个朋友# 获取用户输入
header = input("请输入表头内容:") # 用户大佬,请告诉我表头是啥子# 使用正则表达式替换除了斜杠、空格、回车和标点符号之外的字符为空格
header = re.sub(r'[^\w\s/]', ' ', header) # 通过施展魔法,把不属于字母数字、斜杠、空格、回车和标点符号的字符都变为空格# 使用空格作为分隔符,将表头拆分成列表
header_list = header.split() # 把表头按照空格进行裁剪,装进一个列表# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame(columns=header_list) # 准备一个空荡荡的表格,列名就是刚才小伙伴们给的表头# 在DataFrame中添加表头
df.columns = header_list # 让这个表格的列名变成刚才想好的表头们# 创建保存目录
directory = '/storage/emulated/0/代码文件/' # 准备好一个地方,专门用来保存代码文件# 看看这个地方存不存在,不存在就创建一个
if not os.path.exists(directory): # 如果这个地方不存在的话os.makedirs(directory) # 那咱们老老实实地创建一个目录吧# 生成文件名
file_name = '{}.{}_{}.xlsx'.format('编号', '库', int(time.time())) # 按照规矩来,给这个文件宝贝安排一个名字# 保存Excel文件
excel_file = os.path.join(directory, file_name) # 告诉电脑宝贝,这个文件要保存在哪里
df.to_excel(excel_file, index=False) # 把上面那个空荡荡的表格给保存到Excel文件里面去,别忘了把索引列也去掉哦~

相关文章:
input输入表头保存excel文件
input输入表头 input输入表头 (input内除了/,空格 回车 标点符号等 全部作为单元格分隔符)保存/storage/emulated/0/代码文件/ 没有就创建文件名命名方法:编号. 库 时间戳嗨!听说你有个需求,想根据用户输入…...
DataBinding双向绑定简介
一、简介 在Vue中使用的是MVVM架构。通过ViewModel可以实现M层和V层数据的双向绑定。Model层的数据发生变化后,会自动更新View层UI。UI层数据发生变化(用户输入),可以驱动Model层的数据发生变化,借助于Vue框架中的View…...
Is This The Intelligent Model(这是智能模型吗)
Is This The Intelligent Model 这是智能模型吗 Ruoqi Sun Academy of Military Science Defense Innovation Institute, Beijing, 100091, China E-mail: ruoqisun7163.com The exposed models are called artificial intelligent models[1-3]. These models rely on knowled…...
MySQL事务:特性、使用、并发事务问题和隔离级别
什么是事务? 在数据库中,事务是一组SQL操作,它们被视为一个单一的工作单元。事务必须同时成功或失败,以确保数据库的一致性。事务通常遵循ACID属性,即原子性(Atomicity)、一致性(Co…...
FFmpeg日志系统、文件与目录、操作目录
目录 FFmpeg日志系统 FFmpeg文件与目录操作 FFmpeg文件的删除与重命名 FFmpeg操作目录及list的实现 操作目录重要函数 操作目录重要结构体 FFmpeg日志系统 下面看一个简单的 demo。 #include <stdio.h> #include <libavutil/log.h>int main(int argc,char* …...
好奇喵 | Surface Web ---> Deep Web ---> Dark Web
前言 我们可能听说过深网(deep Web)、暗网(dark Web)等名词,有些时候可能会认为它们是一个东西,其实不然,两者的区别还是比较大的。 什么是deep web? 深网是网络的一部分,与之相对应的是表层网络(surface …...
三、thymeleaf基本语法
3.1、基本语法 3.1.1变量表达式:${...} 变量表达式用于在页面中输出指定的内容,此内容可以是变量,可以是集合的元素,也可以是对象的属性。主要用于填充标签的属性值,标签内的文本,以及页面中js变量的值等…...
创建一个新的IDEA插件项目
启动IntelliJ IDEA并按照以下步骤创建新的插件项目: 打开IntelliJ IDEA并单击“Create New Project”(创建新项目)。 在左侧菜单栏中选择“IntelliJ Platform Plugin”(IntelliJ平台插件)。 在右侧窗格中,…...
Doris数据库BE——冷热数据方案
新的冷热数据方案是在整合了存算分离模型的基础上建立的,其核心思路是:DORIS本地存储作为热数据的载体,而外部集群(HDFS、S3等)作为冷数据的载体。数据在导入的过程中,先作为热数据存在,存储于B…...
Python无废话-办公自动化Excel格式美化
设置字体 在使用openpyxl 处理excel 设置格式,需要导入Font类,设置Font初始化参数,常见参数如下: 关键字参数 数据类型 描述 name 字符串 字体名称,如Calibri或Times New Roman size 整型 大小点数 bold …...
竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别
文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…...
Django 数据库迁移(Django-04)
一 数据库迁移 数据库迁移是一种数据库管理技术,它用于在应用程序的开发过程中,根据模型(Model)的变化自动更新数据库结构,以保持数据库与代码模型的一致性。数据库迁移的主要目的是确保数据库与应用程序的模型定义同…...
Redis相关概念
1. 什么是Redis?它主要用来什么的? Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提…...
Scala第十八章节
Scala第十八章节 scala总目录 文档资料下载 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合…...
JAVA学习(4)-全网最详细~
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
【单片机】12-串口通信和RS485
1.通信有关的常见概念 区分:串口,COM口,UART,USART_usart和串口区别-CSDN博客 串口、COM口、UART口, TTL、RS-232、RS-485区别详解-CSDN博客 1.什么是通信 (1)人和人之间的通信:说话ÿ…...
一步步教你使用GDB调试程序:从入门到精通的全面指南
文章目录 Step1:安装GDB1.1、包管理器安装1.2、下载源码编译安装 Step2:编译程序时添加调试信息Step3:GDB启动、退出、查看代码Step4:GDB断点操作Step5:GDB调试操作5.1 单步调试5.2 多进程调试 调试是软件开发中非常重…...
OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列
OpenCV读取RGB图像 在OpenCV中,读取的图片默认是HWC格式,即按照高度、宽度和通道数的顺序排列图像尺寸的格式。我们看最后一个维度是C,因此最小颗粒度是C。 例如,一张形状为2562563的RGB图像,在OpenCV中读取后的格式…...
基于安卓android微信小程序的校园维修平台
项目介绍 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整…...
mysql面试题16:说说分库与分表的设计?常用的分库分表中间件有哪些?分库分表可能遇到的问题有哪些?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说说分库与分表的设计? 在MySQL中,分库与分表是常用的数据库水平扩展技术,可以提高数据库的吞吐量和扩展性。下面将具体讲解MySQL中分库与分表…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
