【问题标题】:Python - Add Date Stamp To Text FilePython - 将日期戳添加到文本文件
【发布时间】:2011-03-07 01:28:23
【问题描述】:

在 Python v2 中,有没有办法获取日期/时间戳并将其用于创建新的文本文件?

IE:当我想创建一个新的文本文件并将程序的内容写入其中时,它将创建一个包含时间/日期的新文本文件。

感谢您的帮助。

【问题讨论】:

  • "当我想创建一个新的文本文件并将我的程序的内容写入其中时,它将创建一个包含时间/日期的新文本文件":第一个 "it" 表示 "文件”,第二个“它”表示“我的代码”——请编辑您的问题,明确说明第三个“它”是指“文件”还是“文件名”。

标签: python datetime text


【解决方案1】:
import datetime

def timeStamped(fname, fmt='%Y-%m-%d-%H-%M-%S_{fname}'):
    return datetime.datetime.now().strftime(fmt).format(fname=fname)

with open(timeStamped('myfile.txt'),'w') as outf:
    outf.write('data!')

【讨论】:

  • +1 用于使用'-' 作为时间元素分隔符...':' 不是 Windows 文件名或目录名中的有效字符。
  • 请注意,String.format() 方法不适用于所有版本的 Python v2,with open 块也不是,因此如果示例不起作用,则可能是原因。
【解决方案2】:

这将在文件名前面添加一个时间戳:

from datetime import datetime

# define a timestamp format you like
FORMAT = '%Y%m%d%H%M%S'
path = 'foo.txt'
data = 'data to be written to the file\n'
new_path = '%s_%s' % (datetime.now().strftime(FORMAT), path)
open(new_path, 'w').write(data)

【讨论】:

    【解决方案3】:
    import datetime
    
    f=open("/home/rohitsai/Documents/acs.txt",'a')
    f.write ("heloo"+'\t')
    f.write(datetime.datetime.now().ctime())
    print datetime.datetime.now()
    

    此代码将在同一文件上添加 helo 以及当前日期。 'a' 用于追加模式,\t 用于制表符空间。

    【讨论】:

      【解决方案4】:
      import datetime
      open("file", "w").write(datetime.datetime.now().ctime())
      open(datetime.datetime.now().ctime(), "w").write("foo")
      

      【讨论】:

      • 就是将日期时间写入文本文件中,有没有办法将它添加到文本文件的名称中?
      【解决方案5】:

      我喜欢在我的文件句柄中只包含日期:

      from datetime import date
      
      def timeIzNow():
          '''
          returns current date as a string
          '''
          now = date.today()
          full = "-" + str(now.month) + "-" + str(now.day) + "-" + str(now.year)
      
          return full
      
      fileN = "findGenes"
      
      with open(fileN + timeIzNow() + ".txt", 'w') as f:
          #DO STUFF
      

      您的新文件名将如下所示

      findGenes-6-5-2013.txt
      

      【讨论】:

        【解决方案6】:

        如果您只想为文件提供时间戳而不关心调整所述时间戳的格式,那么很多这些答案都不必要地复杂

        你可以在一行中完成:

        f.write(datetime.now().__str__() + "\n")
        

        这里我假设f 是一个文件 - 所以我们打印datetime.now() 的字符串表示并添加一个新行,因为write() 不会为您执行此操作。 (不过你可能已经知道了。)

        注意:检查是否使用 Python 3,我没有使用 Python 2 进行测试,我不确定您使用的是哪个版本的语言规范。

        【讨论】:

        • 您需要在此答案中提供更多上下文 - 需要使用 datetime.datetime.now() 。如果你只是尝试import datetime ; datetime.now(),你会得到AttributeError: module 'datetime' has no attribute 'now'
        • @wesinat0r 尝试 from datetime import datetime 或 datetime.datetime - 类似的,你只需要从模块中额外导入一个级别
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 2021-08-26
        • 2014-07-28
        • 1970-01-01
        • 2011-02-05
        相关资源
        最近更新 更多