【问题标题】:Python code output to a file and add timestamp to filenamePython代码输出到文件并将时间戳添加到文件名
【发布时间】:2014-02-23 13:43:50
【问题描述】:

“我什至不会从 python-fix 的角度来解决这个问题,而只是重定向运行 python 脚本的输出: python /path/to/script/myscript.py > /path/to/output/myfile.txt 您的脚本无需更改任何内容,所有打印语句都将在您的文本文件中结束。”

我怎样才能使用上面的代码输出到文件,还要给文件名加上时间戳? 例如:python /path/to/script/myscript.py > /path/to/output/myfile01-22-2014.txt

【问题讨论】:

  • 您引用的人建议您使用 shell/命令提示符来处理文件的创建。你正在运行什么外壳,例如bash 还是 windows 命令提示符?两者都应该有相当简单的创建时间戳的方法。
  • 我正在运行 bash .....我是 python 新手,正在使用它从巢恒温器中获取信息并将其保存到文件并为其添加时间戳...python /usr/ local/bin/nest.py -u alan@###.com -p ####### 显示 > /Users/Alan/Dropbox/NestAPI/CSV-Files/nest.csv

标签: python file timestamp output


【解决方案1】:

我做了这样的事情来将时间戳添加到我的文件名中。

import time, os, fnmatch, shutil


t = time.localtime()
timestamp = time.strftime('%b-%d-%Y_%H%M', t)
BACKUP_NAME = ("backup-" + timestamp)

【讨论】:

    【解决方案2】:

    如果您遵循此人的建议(这似乎很明智),那么这更像是一个 bash 问题而不是 Python 问题 - 您可以使用 date 命令在控制台命令中生成文件名,例如:

    python /path/to/script/myscript.py > /path/to/output/myfile$(date "+%b_%d_%Y").txt
    

    【讨论】:

      【解决方案3】:
      import sys
      from datetime import datetime
      from cStringIO import StringIO
      backup = sys.stdout
      sys.stdout = StringIO()
      run_script();
      print 'output stored in stringIO object'
      out = sys.stdout.getvalue()
      sys.stdout.close()
      sys.stdout = backup
      filename = '/path/to/output/myfile-%s.txt'%datetime.now().strftime('%Y-%m-%d')
      f = open(filename,'w')
      f.write(out)
      f.close()
      

      【讨论】:

      • 感谢您的帮助,但我不确定如何应用此代码
      • 使用 os.popen,但带有日期参数的 shell 选项似乎更适合您的方法,就像 @Marius 说的那样做 /path/to/output/file-`date +%Y-%m-%d`.txt/path/to/output/file-$(date +%Y-%m-%d).txt
      猜你喜欢
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多