Python isDirectoryError:[Errno 21]是一个目录:'/home/cali/Dropbox/&x27;

Python isDirectoryError:[Errno 21]是一个目录:'/home/cali/Dropbox/&x27;,python,Python,我有一个函数,试图将XML文档复制到我的Dropbox文件夹,但我得到: /usr/bin/python3.5 /home/cali/PycharmProjects/Vocabulary/Vocabulary.py Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__ r

我有一个函数,试图将XML文档复制到我的Dropbox文件夹,但我得到:

/usr/bin/python3.5 /home/cali/PycharmProjects/Vocabulary/Vocabulary.py
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
    return self.func(*args)
  File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 232, in add_item
    self.sync()
  File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 287, in sync
    copyfile(vocabulary_path, destination_path)
  File "/usr/lib/python3.5/shutil.py", line 115, in copyfile
    with open(dst, 'wb') as fdst:
IsADirectoryError: [Errno 21] Is a directory: '/home/cali/Dropbox/'

Process finished with exit code 0
以下是函数:

def sync(self):

    path = os.path.expanduser('~/Desktop')
    vocabulary_path = os.path.join(path, 'Vocabulary', 'Words.xml')
    destination_path = os.path.expanduser('~/Dropbox/')

    copyfile(vocabulary_path, destination_path)

如何克服这个问题?

也许可以将文件复制到另一个文件,而不是目录

...
destination_path = os.path.expanduser('~/Dropbox/Words.xml')
...

您应该将文件路径设置为
目标路径
,而不仅仅是文件夹。因此,只需将其附加一个文件名即可。