将多个 Excel 文件保存到具有唯一文件名的特定路径
Posted
技术标签:
【中文标题】将多个 Excel 文件保存到具有唯一文件名的特定路径【英文标题】:Saving multiple Excel Files to a Specific Path with Unique Filenames 【发布时间】:2020-04-03 09:30:52 【问题描述】:我会循环调整每个文件的 CSV 结构。
现在我希望它们以唯一的文件名保存到分配的文件夹中。
我可以保存到 CSV 文件,但是 CSV 文件会被覆盖,导致只有 test5 文件的最终修改结果。我想以自己的filename+string _modified
格式保存CSV。
我有 5 个 csv 文件: 测试1.csv 测试2.csv test3.csv 测试4.csv test5.csv
我导入它们:
for x in allFiles:
print(x)
stop=1
with open(x, 'r') as thecsv:
base=os.path.basename(ROT)
filename=os.path.splitext(base)[0]
print(name)
现在我遍历文件操作它们并将其保存为DataFrame
。
这工作正常。
现在我想将每个文件分别保存在具有唯一名称(文件名 + _modified)的输出文件夹中
输出='J:\Temp\Output'
这是我尝试过的:
df2.to_csv(output+filename+'//_modified.csv'),sep=';',header=False,index=False)
也试过了:
df2.to_csv(output(os.path.join(name+'//_modified.csv'),sep=';',header=False,index=False)
希望输出文件夹如下所示:
test1_modified.csv
test2_modified.csv
test3_modified.csv
test4_modified.csv
test5_modified.csv
【问题讨论】:
【参考方案1】:我会做这样的事情,在调用之前取一个新名字把它写出来:
testFiles = ["test1.csv", "test2.csv", "test3.csv",
"test4.csv", "test5.csv"]
# iterate over each one
for f in testFiles:
# strip old extensions, replace with nothing
f = f.replace(".csv", "")
# I'd use join but you can you +
newName = "_".join([f, "_modified.csv"])
print(newName)
# make your call to write it out
我还会检查 pandas 文档是否写出来,它比您尝试的要简单:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
import pandas as pd
# read data
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
# write data to local
iris.to_csv("iris.csv")
【讨论】:
感谢您的帮助它对我不起作用.. 我只想在输出位置保存多个 csv 文件。每个都有一个唯一的名称 什么具体不起作用?如果你给它提供真实的文件,它应该可以工作。你仍然需要用熊猫等打开它们。如果您将文件名放在列表中,您应该能够以这种方式进行操作。【参考方案2】:我找到了解决问题的方法
df.to_csv(输出+'\'+文件名+'.csv',sep=';',header=False,index=False)
【讨论】:
以上是关于将多个 Excel 文件保存到具有唯一文件名的特定路径的主要内容,如果未能解决你的问题,请参考以下文章