Eingabekopf zum Speichern der Excel-Datei

Eingabe-Eingabe-Header

Fügen Sie hier eine Bildbeschreibung ein

input输入表头
(input内除了/,空格 回车 标点符号等
全部作为单元格分隔符)

保存/storage/emulated/0/代码文件/
没有就创建

文件名命名方法:编号. 库  时间戳

Hallo! Ich habe gehört, dass Sie eine Anforderung haben: Sie möchten eine Excel-Tabelle basierend auf Benutzereingaben erstellen und die Datei gemäß der angegebenen Benennungsmethode speichern. Ha ha! Hier ist ein Beispielcode, der Ihnen zeigt, wie es geht:

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)

Zuerst müssen wir den vom Benutzer eingegebenen Header-Inhalt abrufen. Nun, ich werde mir die Mühe machen, diesen Inhalt in etwas zu konvertieren, das für die Excel-Tabelle geeignet ist, und dabei einige seltsame Symbole entfernen.

Dann fügen wir den verarbeiteten Header in eine brandneue und leere Excel-Tabelle ein und lassen ihn dort geduldig warten.

Als nächstes müssen wir ein spezielles Verzeichnis erstellen, um diese spezielle Excel-Datei zu speichern. Wenn dieses Verzeichnis bereits existiert, vergessen Sie es; wenn es nicht existiert, werde ich es selbst für Sie erstellen.

Schauen wir uns an, was dieser Code beim „Generieren von Excel-Dateien“ bewirkt:

开始
├─ 获取用户输入表头内容
│   └─ 干掉不需要的字符
├─ 拆分表头为列表
├─ 创建空的DataFrame
├─ 将表头添加到DataFrame中
├─ 创建保存目录
│   ├─ 如果目录不存在,创建该目录
│   └─ 如果目录已经存在,直接进入下一步
├─ 生成文件名
│   ├─ 包括一个编号
│   ├─ 一个库
│   └─ 当前时间的整数形式
├─ 保存Excel文件
│   ├─ 将DataFrame保存为Excel格式
│   ├─ 不要在Excel中显示行号
│   └─ 保存文件到指定目录下
└─ 结束

Jetzt ist es an der Zeit, Ihrer Excel-Datei einen eindeutigen Namen zu geben! Der Name enthält eine Zahl, eine Bibliothek und schließlich die aktuelle Uhrzeit. Das ist cool genug, oder?

Der letzte Schritt besteht darin, diese Excel-Datei voller Erwartungen zu speichern. Ich würde darauf achten, diese Tabelle im Excel-Format zu speichern und anzuweisen, dass in Excel keine Zeilennummern angezeigt werden. Dann lege ich es in das Verzeichnis, das wir gerade erstellt haben, damit Sie es auf einen Blick finden können.

Haha, das ist es! Die Aufgabe ist abgeschlossen, wir haben erfolgreich eine speziell benannte Excel-Datei entsprechend den Anforderungen des Benutzers erstellt. Es fühlt sich wie eine großartige Leistung an, oder?

Aber wir haben etwas falsch eingegeben

Fügen Sie hier eine Bildbeschreibung ein

Warum das?

Der Fehler tritt auf, weil der Header nach dem Erstellen eines leeren DataFrame nicht richtig gesetzt ist. Beim Festlegen des Headers verursachte eine Längeninkongruenz einen ValueError.

Das Problem liegt bei dieser Codezeile:
df.columns = header_list

Anhand der Fehlermeldung sieht man, dass die erwartete Achse 0 Elemente haben sollte, die neuen Werte aber 4 Elemente haben. Dies zeigt, dass die Länge Ihrer header_list-Liste 4 beträgt, der leere DataFrame jedoch keine Achse angibt.

Fügen Sie hier eine Bildbeschreibung ein

Um dieses Problem zu lösen, müssen Sie dem DataFrame zuerst manuell eine Zeile mit leeren Daten hinzufügen und dann den Header festlegen. Der geänderte Code lautet wie folgt:

# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame([[]])

# 在DataFrame中添加表头
df.columns = header_list

Nachdem Sie diese Änderung vorgenommen haben, sollten Sie die neue Fehlerantwort sehen können
Fügen Sie hier eine Bildbeschreibung ein

Laut der von Ihnen angegebenen Fehlermeldung handelt es sich bei dem Problem immer noch um einen ValueError, der durch eine Längeninkongruenz verursacht wird. Laut Fehlermeldung sollte die erwartete Achse 0 Elemente haben, die neuen Werte haben jedoch 3 Elemente.

Dies zeigt, dass die Länge Ihrer header_list-Liste 3 beträgt, der leere DataFrame jedoch keine Achse angibt.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus, um Ihren Code zu ändern:

  1. Erstellen Sie einen leeren DataFrame und geben Sie eine Zeile an (Achse=0).
  2. Fügen Sie dem DataFrame einen Header hinzu und stellen Sie sicher, dass der Header der Länge von header_list entspricht.

Der geänderte Code lautet wie folgt:

# 创建空的DataFrame,并添加一行空数据
df = pd.DataFrame(columns=header_list)

# 保存Excel文件
excel_file = os.path.join(directory, file_name)
df.to_excel(excel_file, index=False)

Fügen Sie hier eine Bildbeschreibung ein
Nach dieser Änderung können Sie sehen, dass wir endlich keine Fehler mehr melden.

Fügen Sie hier eine Bildbeschreibung ein
Sie sollten in der Lage sein, den Header erfolgreich festzulegen und fortzufahren.
Fügen Sie hier eine Bildbeschreibung ein

wir haben gewonnen

Der geänderte Code ist


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文件里面去,别忘了把索引列也去掉哦~


Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/weixin_73675558/article/details/133501067
Recomendado
Clasificación