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中分库与分表…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
手动给中文分词和 直接用神经网络RNN做有什么区别
手动分词和基于神经网络(如 RNN)的自动分词在原理、实现方式和效果上有显著差异,以下是核心对比: 1. 实现原理对比 对比维度手动分词(规则 / 词典驱动)神经网络 RNN 分词(数据驱动)…...
Centos 7 服务器部署多网站
一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站,目录结构如下: bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…...
Java多线程从入门到精通
一、基础概念 1.1 进程与线程 进程是指运行中的程序。 比如我们使用浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。 线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某…...
[electron]预脚本不显示内联script
script-src self 是 Content Security Policy (CSP) 中的一个指令,它的作用是限制加载和执行 JavaScript 脚本的来源。 具体来说: self 表示 当前源。也就是说,只有来自当前网站或者当前页面所在域名的 JavaScript 脚本才被允许执行。"…...
