因为工作需要,需要经常打开excel文件用Pandas进行修改后保存文件,常常需要同一文件迭代好几次,为了保证能够清晰知道我源文件是什么然后做了什么,并且保存路径不重复,想到用小时+分钟+秒的后缀放入文件名里来区分文件的版本。后来加了一点功能,可以根据输入的文件路径探测文件夹(暂时只支持一级文件夹目录,等我有空再拓展)。
输入变量解释,path==输入文件的路径,title==加入源文件标题的补充说明,如果选择不说明直接传入空值就行,df==pandas的df对象
def define_output(path,title,df,other_types=False,folder_o=None,silent=False,index=False):
#folder_o:指定保存文件夹,将改变在输入路径下保存的做法
#other_types = 其他保存类型(后缀名,不带点)
#Silent:True = 只输出路径而不保存
#index: 与excel相关,是否带索引,other_types = True时无效
x = time.strftime("%m%d%H%M%S")
name,folder = get_purename(path)
filename = f'{title}_{name}_{x}'
if len(filename) > 50:
filename = filename[:50]
if folder_o is not None:
str1 = f'{folder_o}/{filename}'
else:
str1 = f'{folder}/{filename}'
if other_types is False:
str0 = f'{str1}.xlsx'
else:
str0 = f'{str1}.{other_types}'
print(str0)
if silent is False:
if index and not other_types:
df.to_excel(str0, index=True)
else:
df.to_excel(str0, index=False)
return str0