【问题标题】:python pandas to csv file save, not overridepython pandas到csv文件保存,不覆盖
【发布时间】:2019-02-20 21:52:06
【问题描述】:

我读取了一个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 文件。

【问题讨论】:

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


    【解决方案1】:

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

    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')
    

    【讨论】:

    • 感谢您的帮助。我工作得很好。非常感谢您的帮助。
    【解决方案2】:

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

    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)
    

    【讨论】:

      【解决方案3】:

      根据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')
      

      【讨论】:

      • 感谢您的评论。我需要删除它。但是你有什么想法让文件名像“filenave_YYYY_MM_DD_HH_MM.csv”?
      猜你喜欢
      • 2019-06-04
      • 1970-01-01
      • 2020-11-30
      • 2020-07-17
      • 1970-01-01
      • 2018-02-18
      • 2019-10-10
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多