from datetime import *
import os
stats=os.stat('aaa.txt')
print('File size in bytes:',stats.st_size)
print('File last Accessed Time:',datetime.fromtimestamp(stats.st_atime))
print('File last Modified Time:',datetime.fromtimestamp(stats.st_mtime))
即使在导入 datetime 模块后,我也会收到类似
的错误File size in bytes: 0
Traceback (most recent call last):
File "F:/Python/Directories/datetime.py", line 1, in <module>
from datetime import *
File "F:\Python\Directories\datetime.py", line 5, in <module>
print('File last Accessed Time:',datetime.fromtimestamp(stats.st_atime))
NameError: name 'datetime' is not defined
将导入语句编辑为:-
import datetime
(而不是)
from datetime import *
我遇到了错误
File size in bytes: 0
Traceback (most recent call last):
File "F:/Python/Directories/datetime.py", line 2, in <module>
import datetime
File "F:\Python\Directories\datetime.py", line 6, in <module>
print('File last Accessed Time:',datetime.fromtimestamp(stats.st_atime))
AttributeError: module 'datetime' has no attribute 'fromtimestamp'
最佳答案
您已将模块命名为 datetime
,它隐藏了 stdlib datetime
。 from datetime import *
然后从 自身 导入所有内容,其中不包括名为 datetime
的对象,从而导致 NameError
.
更改模块的名称。
Python 中的导入路径由 sys.path
指定(按顺序)。 sys.path[0]
始终是 '.'
,即当前工作目录。
实际上,这意味着如果您创建一个扩展名为 .py
且与标准库包/模块同名的文件,它将取代 stdlib 和您的 import
该包中的 s 将更喜欢您的模块而不是 stdlib 模块。
在您的特定情况下,您的 datetime.py
运行了 from datetime import *
并尝试从自身导入所有内容,而不是从 stdlib datetime
. Python 足够聪明,不会为已经加载的模块重新运行 import 语句,否则你会得到一个无限循环,你的模块会导入它自己,它看到它应该导入它自己所以它导入它自己,它看到它应该导入本身所以它导入自己,它看到....
然而,当您尝试使用 datetime
导入实际做某事时,不陷入无限循环无济于事,因为您希望看到 stdlib datetime
及其所有相关成员,但您只会看到您已经在自己的 datetime.py
中定义的内容!
关于python - 执行练习代码时,即使在 datetime 模块之后也会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204000/