是目录错误:[Errno 21] 是一个目录:'/home/cali/Dropbox/'。

3

我有一个函数,想把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)

我该如何解决这个问题?

1
你应该将文件作为“destination_path”传递,而不仅仅是文件夹。因此,只需将其附加到文件名即可。 - m0nhawk
1个回答

6
也许将文件复制到另一个文件中,而不是目录中。
...
destination_path = os.path.expanduser('~/Dropbox/Words.xml')
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接