Python中__DATE__和__TIME__的等效宏是什么?

2 投票
3 回答
1976 浏览
提问于 2025-04-16 01:30

在Python中,有没有类似于__DATE__和__TIME__这样的东西呢?

3 个回答

0

这是我怎么做的:

运行批处理文件:

echo %DATE%
echo %TIME%
set datetimef=%time:~0,2%:%time:~3,2%:%time:~6,2% %date:~0,2%.%date:~3,2%.%date:~-4%
echo %datetimef% > .\txt\build_time.txt
pyinstaller --add-data=".\txt\build_time.txt;txt" --onefile app.py 
copy ".\dist\app.exe" ".\out\Test_RS485" 
cmd

在Python文件里写了这个:

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.getcwd()
    return os.path.join(base_path, relative_path)


with open(resource_path("txt/build_time.txt"), 'r') as file:
    build_time = file.read().rstrip()
3

如果你在说的是 C语言中的宏,那么答案是否定的。这并不奇怪,因为Python既没有宏,也没有真正的编译步骤(它可以生成pyc和pyo文件,但这和编译成机器代码是不一样的)。如果你需要类似的功能(比如告诉你代码是什么时候构建的),你就得自己定义“构建”的意思,并实现这个功能。

4

Python的编译过程和C语言不一样,所以它没有像C那样的宏。不过,如果你想要一个简单粗暴的方法,可以使用__file__这个全局变量,它会存储当前Python文件的名字。你可以通过这个变量来检查这个文件最后一次被修改的时间,这样就能得到一个类似于构建日期的信息:

import os, time
print time.ctime(os.path.getmtime(__file__))

撰写回答