Python 执行实践代码时,即使在datetime模块之后也出现错误

Python 执行实践代码时,即使在datetime模块之后也出现错误,python,python-3.x,Python,Python 3.x,即使在导入datetime模块之后,我也会遇到如下错误 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.fromti

即使在导入datetime模块之后,我也会遇到如下错误

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))
而不是

import datetime
我在犯错误

from datetime import *
您已将模块命名为datetime,它将隐藏stdlib datetime。from datetime import*然后从自身导入所有内容,其中不包括名为datetime的对象,从而导致NameError

更改模块的名称

Python中的导入路径由sys.path按顺序指定。sys.path[0]始终为“.”,即当前工作目录

实际上,这意味着如果您创建了一个扩展名为.py且与标准库包/模块同名的文件,那么它将取代stdlib包/模块,并且您从该包导入的内容将首选您的模块而不是stdlib模块

在您的特定情况下,datetime.py从datetime import*运行,并尝试从自身而不是从stdlib datetime导入所有内容。Python足够聪明,不会为已经加载的模块重新运行import语句,否则您会得到一个无限循环,模块会在其中导入自己,它会看到它应该导入自己,所以它会导入自己,它会看到它应该导入自己,所以它会导入自己,这会看到

但是,当您尝试实际执行datetime导入时,不陷入无限循环并没有帮助,因为您希望看到stdlib datetime及其所有关联成员,但是您只看到您自己的datetime.py中已经定义的内容

您已将模块命名为datetime,它将隐藏stdlib datetime。from datetime import*然后从自身导入所有内容,其中不包括名为datetime的对象,从而导致NameError

更改模块的名称

Python中的导入路径由sys.path按顺序指定。sys.path[0]始终为“.”,即当前工作目录

实际上,这意味着如果您创建了一个扩展名为.py且与标准库包/模块同名的文件,那么它将取代stdlib包/模块,并且您从该包导入的内容将首选您的模块而不是stdlib模块

在您的特定情况下,datetime.py从datetime import*运行,并尝试从自身而不是从stdlib datetime导入所有内容。Python足够聪明,不会为已经加载的模块重新运行import语句,否则您会得到一个无限循环,模块会在其中导入自己,它会看到它应该导入自己,所以它会导入自己,它会看到它应该导入自己,所以它会导入自己,这会看到


但是,当您尝试实际执行datetime导入时,不陷入无限循环并没有帮助,因为您希望看到stdlib datetime及其所有关联成员,但是您只看到您自己的datetime.py中已经定义的内容

在第二种情况下,它应该是datetime.datetime.fromtimestamp.from datetime导入datetime,然后是datetime.FromTimestasts.st_mtime不起作用?我之前也尝试过datetime.datetime.fromtimestamp,但它抛出了相同的属性错误。在第二种情况下,它应该是datetime.datetime.fromtimestamp.from datetime导入datetime和datetime.FromTimestasts.st_mtime不起作用?我之前也尝试过datetime.datetime.fromtimestamp,但它抛出了相同的属性。或者,您能详细说明我如何更改模块的名称吗?如导入datetimexyz@PrashantKumar重命名你的python文件。感谢Adam对我的支持。。。我已经更改了python文件名,但它的抛出属性错误:模块“datetime”没有属性“fromtimestamp”是的,我有这个属性。我删除了所有内容,并用不同的名称创建了一个新文件,现在它运行良好。谢谢你的帮助…文件名有问题。。。。你能再一次解释一下为什么我是一个初学者…嘿,你能详细说明一下我怎样才能把我的名字改成模块化的导入日期时间吗xyz@PrashantKumar重命名你的python文件。感谢Adam对我的支持。。。我已经更改了python文件名,但它的抛出属性错误:模块“datetime”没有属性“fromtimestamp”是的,我有这个属性。我删除了所有内容,并用不同的名称创建了一个新文件,现在它运行良好。谢谢你的帮助…文件名有问题。。。。你能再解释一下为什么我是初学者。。。
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'