gpt4 book ai didi

python - 执行练习代码时,即使在 datetime 模块之后也会出现错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:15 25 4
gpt4 key购买 nike

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 datetimefrom 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com