Python.IOError: [Errno 13] В доступе отказано: когда я копирую файл - PullRequest
22 голосов
/ 22 сентября 2011

У меня есть две папки: In, Out - это не системная папка на диске D: - Windows 7. Out содержит «myfile.txt». В python я запускаю следующую команду:

>>> shutil.copyfile( r"d:\Out\myfile.txt", r"D:\In" )

Traceback (most recent call last):
  File "<pyshell#39>", line 1, in <module>
    shutil.copyfile( r"d:\Out\myfile.txt", r"D:\In" )
  File "C:\Python27\lib\shutil.py", line 82, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: 'D:\\In'

В чем проблема?

Ответы [ 6 ]

55 голосов
/ 22 сентября 2011

Считайте документы :

shutil.copyfile(src, dst)

Скопируйте содержимое (без метаданных) файла с именем src в файл по имени дст . dst должно быть полным именем целевого файла ; посмотрите на copy() для копии, которая принимает целевой путь к каталогу.

11 голосов
/ 06 октября 2015

использование shutil.copy вместо shutil.copyfile

пример:

shutil.copy(PathOf_SourceFileName.extension,TargetFolderPath)
1 голос
/ 22 декабря 2018

Я решил эту проблему, вы должны указать полное имя файла назначения для пункта назначения

destination = pathdirectory + filename. *

Я использую этот код для копирования wav-файла с shutil:

    # open file with QFileDialog

    browse_file = QFileDialog.getOpenFileName(None, 'Open file', 'c:', "wav files (*.wav)")

    # get file name 

    base = os.path.basename(browse_file[0])
    os.path.splitext(base)
    print(os.path.splitext(base)[1])

    # make destination path with file name

    destination= "test/" + os.path.splitext(base)[0] + os.path.splitext(base)[1]
    shutil.copyfile(browse_file[0], destination)
0 голосов
/ 17 июня 2019

использование

> from shutil import copyfile
> 
> copyfile(src, dst)

для src и dst:

srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
0 голосов
/ 21 марта 2019

Используйте shutil.copy2 вместо shutil.copyfile

import shutil 
shutil.copy2('/src/dir/file.ext','/dst/dir/newname.ext') # file copy to another file
shutil.copy2('/src/file.ext', '/dst/dir') # file copy to diff directory
0 голосов
/ 18 января 2018

ну вопрос старый, для нового вьювера Python 3.6 использовать

shutil.copyfile( "D:\Out\myfile.txt", "D:\In" )

вместо

shutil.copyfile( r"d:\Out\myfile.txt", r"D:\In" )

r передается аргумент для чтения файла, а не для копирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...