为什么在Python 3.4中使用path.name()会导致"TypeError: 'str' object is not callable"?
下面的代码是用来打印一个文件夹里所有文件的名字:
from pathlib import Path
for myPath in Path.cwd().iterdir():
print (myPath.name())
但是我遇到了这个错误:
Traceback (most recent call last):
File "NameTest.py", line 4, in <module>
print (myPath.name())
TypeError: 'str' is not callable
如果我打印“myPath”这个对象的类型,发现文件夹里的所有内容都显示为class pathlib.windowspath。
我在Windows 8上使用的是Python 3.4,并且是在最新版本的Parallels中运行的。
2 个回答
0
@ David Maddox,
兄弟,我也犯了和你一样的错误。当我想用 pathlib
的 Path()
来处理一个绝对路径,比如 'C:\\Users\\109_IR\\2023_06_15_09_43_53_078.jpg'
时,我也遇到了和你一样的错误提示。后来我发现,其实我们可以把像 'C:\\Users\\109_IR\\2023_06_15_09_43_53_078.jpg'
这样的 str
变量放进 Path()
里。导致我出错的原因是,我的代码前面有一个叫Path的变量。这就导致在调用 pathlib
的 Path()
函数时出错。这显然是个简单的错误,希望其他人不要再犯和我一样的错误。
3
myPath.name
不能被调用,因为它是一个 属性,属于 str
类型。
你可以试试这个:
for myPath in Path.cwd().iterdir():
print(myPath.name)