Python 属性错误:';模块';对象没有属性';[x] &x27;
我正在尝试制作一个脚本,将桌面上的所有.txt文件移动到desktop/org,代码如下:Python 属性错误:';模块';对象没有属性';[x] &x27;,python,Python,我正在尝试制作一个脚本,将桌面上的所有.txt文件移动到desktop/org,代码如下: import os import shutil userhome = os.path.expanduser('~') src = userhome + '/Desktop/' dst = src+ 'org/' def main(): txtlist = os.listdir(src) for file in txtlist: sortFiles(file) def
import os
import shutil
userhome = os.path.expanduser('~')
src = userhome + '/Desktop/'
dst = src+ 'org/'
def main():
txtlist = os.listdir(src)
for file in txtlist:
sortFiles(file)
def sortFiles(file):
if file.endswith(".txt"):
shutil.move(src+file,dst)
main()
如果执行.py,则会出现以下错误:AttributeError:“module”对象没有属性“copy”。但是,如果我删除最后一行“main()”,并将此脚本作为模块导入python命令行中,然后从那里调用.main(),它就可以很好地工作。如何将此脚本作为脚本执行
Traceback (most recent call last):
File "C:\Python32\org.py", line 3, in <module>
import shutil
File "C:\Python32\lib\shutil.py", line 14, in <module>
import tarfile
File "C:\Python32\lib\tarfile.py", line 50, in <module>
import copy
File "C:\Python32\lib\copy.py", line 61, in <module>
from org.python.core import PyStringMap
File "C:\Python32\org.py", line 19, in <module>
main()
File "C:\Python32\org.py", line 12, in main
sortFiles(file)
File "C:\Python32\org.py", line 16, in sortFiles
shutil.move(src+file,dst)
AttributeError: 'module' object has no attribute 'move'
回溯(最近一次呼叫最后一次):
文件“C:\Python32\org.py”,第3行,在
进口舒蒂尔
文件“C:\Python32\lib\shutil.py”,第14行,在
导入tarfile
文件“C:\Python32\lib\tarfile.py”,第50行,在
导入副本
文件“C:\Python32\lib\copy.py”,第61行,在
从org.python.core导入PyStringMap
文件“C:\Python32\org.py”,第19行,在
main()
文件“C:\Python32\org.py”,第12行,主目录
排序文件(文件)
文件“C:\Python32\org.py”,第16行,排序文件
move(src+文件,dst)
AttributeError:“模块”对象没有属性“移动”
我正在使用python 3.2哇,真倒霉。当您查看回溯时,您可以了解发生了什么:
Traceback (most recent call last):
File "C:\Python32\org.py", line 3, in <module>
import shutil
所以shutil
importtarfile
,它导入copy
File "C:\Python32\lib\copy.py", line 61, in <module>
from org.python.core import PyStringMap
这就引出了shutil.copy
行,这是对shutil
模块的调用。由于这是我们仍在导入的模块(从第一行开始!),其导入尚未完全完成,因此内部的copy
函数不存在,导致AttributeError
这是一种非常不幸的情况,在这种情况下,脚本的命名导致对不存在的内容进行循环导入
您可以通过将脚本重命名为其他内容来轻松修复此问题。您可以发布错误的完整堆栈跟踪吗?这段代码在Python 2.7下的Mac上运行良好。我认为您可以从其他程序调用
main()
,因为没有.move()
。如果您有目录,这对我在CentOS中的工作很好!对不起,我想说。main()。我已经在帖子上编辑过了。我还添加了回溯。我使用的是Python3.2 BTW目录确实存在。如果我将此脚本作为模块导入,并从命令行调用它的.main(),那么它对我来说非常有效。问题是我不能让它作为一个自动可执行脚本工作。我还建议将org.py脚本移出python32目录。只有来自实际发行版的代码应该在此目录中。
File "C:\Python32\lib\copy.py", line 61, in <module>
from org.python.core import PyStringMap
File "C:\Python32\org.py", line 19, in <module>
main()
File "C:\Python32\org.py", line 12, in main
sortFiles(file)
File "C:\Python32\org.py", line 16, in sortFiles
shutil.copy(src+file,dst)
AttributeError: 'module' object has no attribute 'copy'