Python 属性错误:';模块';对象没有属性';[x] &x27;

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

我正在尝试制作一个脚本,将桌面上的所有.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 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
import
tarfile
,它导入
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'