Python中__DATE__和__TIME__的等效宏是什么?
在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__))