鱼C论坛

 找回密码
 立即注册
查看: 1853|回复: 8

[已解决]如何用目录名来命名

[复制链接]
发表于 2023-7-25 21:47:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在py文件中,设置了path = 'C://20230725'的目录
如何在保存对应的execl文件时用到里面的0725,原先的想法时取它的后4位,但报错

jieguo = pd.DataFrame(columns=('地点一','东门(这里最好也是带path的多少月多少日部分)','南门'))

jieguo.to_excel(path + '/' + '流动数据'+path[-4,:]+'.xlsx', index=False)

麻烦大家,如何才能用path的日期来命名execl文件跟execl里面的列名。
最佳答案
2023-7-25 21:48:10
你可以使用Python的字符串切片来获取目录名中的日期部分。

在你的代码中,你可以使用path[-4:]来获取目录名的后4位。这将返回目录名中从倒数第4个字符到末尾的子字符串,即日期部分。然后,你可以将这个日期部分用于命名Excel文件和Excel表格的列名。

下面是修改后的代码示例:
import pandas as pd

path = 'C://20230725'  # 目录路径
date = path[-4:]  # 获取目录名中的日期部分

columns = ('地点一', '东门(' + date + '部分)', '南门')  # Excel表格的列名
jieguo = pd.DataFrame(columns=columns)

filename = '流动数据' + date + '.xlsx'  # Excel文件名
jieguo.to_excel(path + '/' + filename, index=False)

这样,你就可以根据目录名中的日期部分来命名Excel文件和设置Excel表格的列名了。

希望这个答案能够帮到你!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-25 21:48:10 | 显示全部楼层    本楼为最佳答案   
你可以使用Python的字符串切片来获取目录名中的日期部分。

在你的代码中,你可以使用path[-4:]来获取目录名的后4位。这将返回目录名中从倒数第4个字符到末尾的子字符串,即日期部分。然后,你可以将这个日期部分用于命名Excel文件和Excel表格的列名。

下面是修改后的代码示例:
import pandas as pd

path = 'C://20230725'  # 目录路径
date = path[-4:]  # 获取目录名中的日期部分

columns = ('地点一', '东门(' + date + '部分)', '南门')  # Excel表格的列名
jieguo = pd.DataFrame(columns=columns)

filename = '流动数据' + date + '.xlsx'  # Excel文件名
jieguo.to_excel(path + '/' + filename, index=False)

这样,你就可以根据目录名中的日期部分来命名Excel文件和设置Excel表格的列名了。

希望这个答案能够帮到你!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-25 21:48:14 | 显示全部楼层
要从目录名中提取日期部分并将其用于命名 Excel 文件和列名,可以使用 Python 的字符串切片操作。下面是修改后的代码示例:
import osimport pandas as pdpath = 'C://20230725'  # 目录路径# 从路径中提取日期部分date = path[-4:]  # 取后4位# 设置列名columns = ('地点一', '东门(' + date + '部分)', '南门')# 创建 DataFramejieguo = pd.DataFrame(columns=columns)# 生成 Excel 文件路径excel_path = os.path.join(path, '流动数据' + date + '.xlsx')# 保存为 Excel 文件jieguo.to_excel(excel_path, index=False)print('Excel 文件保存成功!')
解释一下修改的部分:

1.  date = path[-4:]  通过切片操作  [-4:]  提取目录路径中的后四位字符作为日期部分。

2.  columns  变量设置了列名,其中的  '东门(' + date + '部分)'  将日期部分插入到列名中。

3. 使用  os.path.join(path, '流动数据' + date + '.xlsx')  生成将目录和文件名组合起来的完整路径。

4. 使用  to_excel()  方法将 DataFrame 保存为 Excel 文件,并传入生成的 excel_path。

请注意,在这个示例中,我们使用了  os.path.join()  函数来生成正确的文件路径,这样可以避免因为不同操作系统对路径的表示方式而引发问题。

另外,请确保你已经安装了 Pandas 库,可以使用  pip install pandas  命令进行安装。

希望这能够解决你的问题!如果还有其他疑问,请随时提问。求给个最佳答案,非常感谢
只要点击我的回复贴写着发表时间的那一栏的绿色按钮即可!-->

                               
登录/注册后可看大图


此回答源于ChatGPT,若有不正确之处,请多包容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-25 21:48:14 | 显示全部楼层
问题描述:
在 Python 的脚本中,已经设置了 path = 'C://20230725' 这样一个目录。现在想要在保存对应的 Excel 文件时,使用路径中的 0725 部分作为文件名的一部分。最初的想法是取路径字符串的后 4 位,但是在实际尝试时遇到了错误。
jieguo = pd.DataFrame(columns=('地点一','东门(这里最好也是带path的多少月多少日部分)','南门'))jieguo.to_excel(path + '/' + '流动数据'+path[-4,:]+'.xlsx', index=False)
请问如何才能利用 path 中的日期来命名 Excel 文件以及 Excel 表格的列名?

解决方案:
你可以通过对路径字符串进行切片操作来获取日期部分,并将它用于命名 Excel 文件和列名。下面是修正后的代码示例:
import os# 获取路径中的日期部分date_part = os.path.basename(path)[-4:]# 构造 Excel 文件名excel_filename = path + '/流动数据' + date_part + '.xlsx'# 构造列名列表column_names = ['地点一', '东门(' + date_part + '部分)', '南门']# 创建 DataFramejieguo = pd.DataFrame(columns=column_names)# 保存为 Excel 文件jieguo.to_excel(excel_filename, index=False)
上述代码首先导入了 os 模块,然后通过 os.path.basename(path) 获取路径中的最后一个目录部分(即 '20230725'),再使用切片操作 [-4:] 取得后 4 位日期部分。接下来,我们使用这个日期部分构造了 Excel 文件名,并生成了列名列表。最后,根据 DataFrame 的内容将数据保存为 Excel 文件。

请注意,修正后的代码已经考虑到了获取日期部分和命名 Excel 文件的问题,同时确保了列名中也包含日期部分。如果还有其他疑问,请随时提出。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-25 21:48:23 | 显示全部楼层
在您的代码中,有一些需要修改的地方,以使其正常工作。问题在于, path[-4,:] 是不正确的,因应当是 path[-4:] 。这样,我们就可以获取到路径字符串的最后四个字符。

因此,您应该像下面这样修改代码:
jieguo = pd.DataFrame(columns=('地点一','东门('+ path[-4:] +')','南门'))  # 在列名中加入日期
jieguo.to_excel(path + '/' + '流动数据' + path[-4:] + '.xlsx', index=False)  # 在文件名中加入日期

这样,我们将路径(path)字符串的最后四个字符取出,并分别添加到数据框(DataFrame)的列名和excel文件的文件名中。

但是,请注意,在Windows系统上,路径字符串中的反斜杠( \ )在Python字符串中需要被转义,即使用双反斜杠( \\ )。或者您也可以使用前斜杠( / )。在您的例子中,您使用了前斜杠,这是正确的。例如, 'C://20230725' 应更正为 'C:\\20230725' 或者保持不变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 22:52:25 | 显示全部楼层
陶远航 发表于 2023-7-25 21:48
你可以使用Python的字符串切片来获取目录名中的日期部分。

在你的代码中,你可以使用path[-4:]来获取目 ...

谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 22:57:35 | 显示全部楼层
学习编程中的Ben 发表于 2023-7-25 21:48
要从目录名中提取日期部分并将其用于命名 Excel 文件和列名,可以使用 Python 的字符串切片操作。下面是修 ...

谢谢解答   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 23:00:07 | 显示全部楼层
Mike_python小 发表于 2023-7-25 21:48
问题描述:
在 Python 的脚本中,已经设置了 path = 'C://20230725' 这样一个目录。现在想要在保存对应的 E ...

谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-25 23:02:01 | 显示全部楼层
isdkz 发表于 2023-7-25 21:48
在您的代码中,有一些需要修改的地方,以使其正常工作。问题在于, path[-4,:] 是不正确的,因应当是 path[ ...

谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 09:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表