Python pandas 保存多个不同名称的 CSV
Posted
技术标签:
【中文标题】Python pandas 保存多个不同名称的 CSV【英文标题】:Python pandas save multiple CSV with different names 【发布时间】:2019-05-23 14:47:00 【问题描述】:我正在使用 pandas 读取多个文件,并且需要使用原始文件名_更正的文件名保存每个文件。如何使用原始文件名 + 前缀或数字重命名输出文件?
import pandas as pd
import glob
import os
#Read all files in using pandas
path = r'J:\Temp\\'
all_files = glob.glob(path + "/*.97o")
for filename in all_files:
df = pd.read_csv (filename)
df = df.replace(to_replace ='1997 7 23 ', value = '2019 5 23 ', regex = True)
df = df.replace(to_replace ='97 7 23', value = '19 5 23', regex = True)
df.to_csv('J:\Temp\94512040_corrected.97o', index=False)
应该调用输出文件:filename_corrected.97o
【问题讨论】:
镜头只需要附加到每个循环的文件名上 你可以使用df.to_csv('J:\Temp\'+filename+'_corrected.97o', index=False)
@Bugs404 干扰,但你的答案不起作用
Rename multiple files in Python的可能重复
【参考方案1】:
您可以使用基于旧名称的格式字符串创建新文件名:
import pandas as pd
import glob
import os
#Read all files in using pandas
path = r'J:\Temp\\'
all_files = glob.glob(path + "/*.97o")
for filename in all_files:
df = pd.read_csv(filename)
df = df.replace(to_replace ='1997 7 23 ', value = '2019 5 23 ', regex = True)
df = df.replace(to_replace ='97 7 23', value = '19 5 23', regex = True)
fileBaseName = os.path.basename(filename).split('.')[0]
newFilename = '_corrected.97o'.format(path, fileBaseName)
df.to_csv(newFilename, index=False)
【讨论】:
您好,感谢您的回答,但似乎弄乱了路径 - 出现“没有这样的文件或目录”错误 - 代码似乎将额外的 \\ 添加到文件路径中 这是我得到的: FileNotFoundError: [Errno 2] 没有这样的文件或目录:“J:\\Temp\\Michael\\Python\\Rinex 日期错误\\J:\\Temp\\Michael\\Python \\Rinex 日期错误\\'+文件名+_corrected.97o_corrected.97o"以上是关于Python pandas 保存多个不同名称的 CSV的主要内容,如果未能解决你的问题,请参考以下文章
以长格式保存具有不同级别名称的多索引列 Pandas 为 excel 格式