python pandas保存到csv文件,而不是覆盖

时间:2018-09-17 01:45:39

标签: python python-3.x pandas csv datetime

我读取了csv文件,并反复对数据进行了一些修改。并且我尝试保存文件名为“ naver_news_YYYY_MM_DD_HH_MM.csv”的csv。但是,如果我重复运行该程序,则只能找到带有“ naver_news.csv”的最后一个csv文件。

这是下面的代码。

df.to_csv("C:/Users/Administrator/PycharmProjects/news/naver_news.csv", date_format='%Y-%m-%d', index = False, sep=',', encoding='ms949')

然后,我只能在计算机中找到一个“ naver_news.csv”文件。 我期望的结果文件中殿如下。

naver_news_2018_09_17_10_42.csv
naver_news_2018_09_17_11_42.csv
naver_news_2018_09_17_12_42.csv
naver_news_2018_09_17_13_42.csv 

请让我知道以当前当前时间保存csv文件。

3 个答案:

答案 0 :(得分:2)

您需要自己将时间戳标签插入文件名。

ts = pd.to_datetime('today').strftime('%Y_%m_%d_%H_%M')
filename = f"C:/Users/Administrator/PycharmProjects/news/naver_news_{ts}.csv"
# filename = "C:/Users/Administrator/PycharmProjects/news/naver_news_{}.csv".format(ts) 
df.to_csv(filename, index=False, encoding='ms949')

答案 1 :(得分:1)

您可以创建一个函数来随时获取时间戳,

from datetime import datetime


def get_date_time(fmt='%Y_%m_%d_%H_%M_%S'):
    date_stamp = datetime.now().strftime(fmt)
    print("%s " % date_stamp)
    return date_stamp


file_name = "C:/Users/Administrator/PycharmProjects/news/naver_news_{}.csv".format(get_date_time())
print(file_name)

答案 2 :(得分:0)

根据pandas.DataFrame.to_csv文档,date_format仅影响dataframe内日期时间对象的格式字符串,而不影响文件名,但是您可以使用类似:

from datetime import datetime
fn = "C:/Users/Administrator/PycharmProjects/news/naver_news_{}.csv".format(format(datetime.now(), '%Y_%m_%d_%H_%M'))
df.to_csv(fn, index = False, sep=',', encoding='ms949')