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

根据错误信息,可以看到预期的轴(Expected axis)应该有0个元素,但新值(new values)却有4个元素。这说明你的header_list列表长度为4,但是空的DataFrame并没有指定任何轴。

在这里插入图片描述

为了解决这个问题,你需要先手动为DataFrame添加一行空数据,然后再设置表头。修改的代码如下:

# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame([[]])# 在DataFrame中添加表头
df.columns = header_list

这样修改后,你应该能够看到新的错误❌答案
在这里插入图片描述

根据你提供的错误信息,问题仍然是由于长度不匹配导致的ValueError。根据错误信息,预期的轴(Expected axis)应该有0个元素,但新值(new values)却有3个元素。

这说明你的header_list列表长度为3,但是空的DataFrame并没有指定任何轴。

为了解决这个问题,请按照以下步骤修改代码:

  1. 创建一个空的DataFrame,并指定一个行(axis=0)。
  2. 在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文件里面去,别忘了把索引列也去掉哦~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如果使用pprof来进行性能的观测和优化

1. 分析性能瓶颈 在开始优化之前,首先需要确定你的程序的性能瓶颈在哪里。使用性能分析工具(例如 Go 的内置 pprof 包)来检测程序中消耗时间和内存的地方。这可以帮助你确定需要优化的具体部分。 2. 选择适当的数据结构和算法 选择正确的数…

CSS基础语法第二天

目录 一、复合选择器 1.1 后代选择器 1.2 子代选择器 1.3 并集选择器 1.4 交集选择器 1.4.1超链接伪类 二、CSS特性 2.1 继承性 2.2 层叠性 2.3 优先级 基础选择器 复合选择器-叠加 三、Emmet 写法 3.1HTML标签 3.2CSS 四、背景属性 4.1 背景图 4.2 平铺方式 …

使用sqlmap的 ua注入

文章目录 1.使用sqlmap自带UA头的检测2.使用sqlmap随机提供的UA头3.使用自己写的UA头4.调整level检测 测试环境:bWAPP SQL Injection - Stored (User-Agent) 1.使用sqlmap自带UA头的检测 python sqlmap.py -u http://127.0.0.1:9004/sqli_17.php --cookie“BEEFHOO…

01-Zookeeper特性与节点数据类型详解

上一篇: 在了解Zookeeper之前,需要对分布式相关知识有一定了解,什么是分布式系统呢?通常情况下,单个物理节点很容易达到性能,计算或者容量的瓶颈,所以这个时候就需要多个物理节点来共同完成某项…

C++ 重载运算符和重载函数

C 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重…

2.css样式的设置的三种形式

样式表的嵌入形式 方式一 行内样式&#xff1a;直接在相应的标签中加入 <h1 style"color: red;">焦点访谈&#xff1a;中国底气 新思想夯实大国粮仓</h1> 方式二 内嵌样式&#xff1a;在head中加入style进行设置 <style>h1 {/* color: red; */…

【论文极速读】Prompt Tuning——一种高效的LLM模型下游任务适配方式

【论文极速读】Prompt Tuning——一种高效的LLM模型下游任务适配方式 FesianXu 20230928 at Baidu Search Team 前言 Prompt Tuning是一种PEFT方法&#xff08;Parameter-Efficient FineTune&#xff09;&#xff0c;旨在以高效的方式对LLM模型进行下游任务适配&#xff0c;本…

基于大语言模型扬长避短架构服务

秘诀&#xff1a; 扬泛化之长&#xff0c; 避时延之短

Unity 一些常用特性收集

常用的类的特性 特性效果[Serializable]可序列化&#xff0c;作为一个子属性显示在Inspector面板[RequireComponent(typeof(CoomponnetName))]该类挂载的游戏物体&#xff0c;需要要有对应的组件[DisallowMultipleComponent]不允许挂载多个该类或其子类[ExecuteInEditMode]允许…

CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果

上一篇&#xff0c;我们介绍了动画编辑器相关功能面板说明&#xff0c;感兴趣的朋友可以前往阅读&#xff1a; CocosCreator3.8研究笔记&#xff08;二十三&#xff09;CocosCreator 动画系统-动画编辑器相关功能面板说明。 熟悉了动画编辑器的基础操作&#xff0c;那么再使用动…

基于Javaweb的护肤品推荐系统 /基于ssm的护肤品销售系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

八大排序(三)堆排序,计数排序,归并排序

一、堆排序 什么是堆排序&#xff1a;堆排序&#xff08;Heap Sort&#xff09;就是对直接选择排序的一种改进。此话怎讲呢&#xff1f;直接选择排序在待排序的n个数中进行n-1次比较选出最大或者最小的&#xff0c;但是在选出最大或者最小的数后&#xff0c;并没有对原来的序列…

【牛客网-面试必刷TOP101】二分查找题目

目录 二维数组中的查找_牛客题霸_牛客网 (nowcoder.com) 寻找峰值_牛客题霸_牛客网 (nowcoder.com) 数组中的逆序对_牛客题霸_牛客网 (nowcoder.com) 旋转数组的最小数字_牛客题霸_牛客网 (nowcoder.com) 二维数组中的查找_牛客题霸_牛客网 (nowcoder.com) 题意&#xff1a…

毕业设计选题uniapp+springboot新闻资讯小程序源码 开题 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

Redis 列表类型(List)和命令(数据类型 三)

基本概念 Redis 列表是一种非常实用和多功能的数据结构&#xff0c;适用于各种场景&#xff0c;如消息队列、实时数据流、任务队列、排行榜、历史记录等。 列表底层是压缩列表&#xff08;数据量小、元素简单时&#xff09;和双向循环链表&#xff08;数据量较大、元素复杂时&…

基于 QT 实现一个 Ikun 专属桌面宠物

Step0、实现思路 想到的思路有两种&#xff1a; 1、使用 QT 的状态机模式&#xff0c;参考官网文档&#xff0c;这个模式的解耦最佳 2、使用原生 Wigets&#xff0c;将窗口设置为透明无框&#xff0c;循环播放桌面宠物的状态 本文采用第二种思路&#xff0c;实现一个极简版…

低功耗引擎Cliptrix为什么可以成为IOT的高效能工具

在万物互联的时代&#xff0c;现代人已普遍接受电视、音箱等电器设备具备智能化能力&#xff0c;也是在这个趋势下&#xff0c;我们身边越来越多的iOT设备联网和交互成为刚需。 但iot设备也面临到一些非常显著的痛点&#xff0c;例如iot设备的内存、处理器等核心元件无法与手机…

拉链法和开放寻址法 c++实现

拉链法&#xff08;以下为代码&#xff09; #include<iostream> #include<cstring>using namespace std; const int N100003; int h[N],e[N],ne[N]; int n,idx;void insert(int x){int k(x%NN)%N;e[idx]x;ne[idx]h[k];h[k]idx; }bool find(int x){int k(x%NN)%N;f…

Java之多线程的综合练习二

练习六&#xff1a;多线程统计并求最大值 需求&#xff1a; 在上一题基础上继续完成如下需求&#xff1a; 每次抽的过程中&#xff0c;不打印&#xff0c;抽完时一次性打印(随机) 在此次抽奖过程中&#xff0c;抽奖箱1总共产生了6个奖项。 分别为&#xff1a;10,20,100,50…

Chrome扩展V2到V3的变化

Chrome扩展manifest V3变化、升级迁移指南_chrome_ZK645945-华为云开发者联盟 (csdn.net) 1.background //V2 "background": "background.js"//V3 "background": {"service_worker": "background.js"} 2.executeScript …