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'
答案 0 :(得分:4)
您已将模块datetime
命名为标准stdlib datetime
。 from datetime import *
然后从自身导入所有 ,其中不包括名为datetime
的对象,从而导致NameError
。
更改模块名称。
Python中的导入路径由sys.path
指定(按顺序)。 sys.path[0]
始终为'.'
,也就是当前工作目录。
有效地,这意味着,如果您创建的扩展名为.py
的文件与标准库包/模块的名称相同,则它将替换该包中的stdlib和您的import
会优先选择您的模块而不是stdlib模块。
在您的特定情况下,您的datetime.py
运行了from datetime import *
,并尝试从自身而不是从stdlib datetime
导入所有内容。 Python足够聪明,不会为已加载的模块重新运行导入语句,否则您将在模块导入自身的地方遇到无限循环,这表明它应该导入自身,因此它可以导入自身,然后看到应该导入本身,因此它会自行导入,从而看到....
但是,当您尝试通过datetime
导入实际 做某事时,不陷入无限循环是没有用的,因为您希望看到stdlib {{1} }及其所有关联成员,但是您只会看到自己datetime
中已经定义的内容!
答案 1 :(得分:-1)
尝试一下。
from datetime import datetime
import os
stats=os.stat('aaa.txt') #first_pg
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))