Python. IOError: [Errno 13] Permission denied: when i'm copying file

后端 未结 9 1324
轮回少年
轮回少年 2021-01-03 19:44

I have two folders: In, Out - it is not system folder on disk D: - Windows 7. Out contain \"myfile.txt\" I run the following command in python:

>>>          


        
相关标签:
9条回答
  • 2021-01-03 19:55

    well the questionis old, for new viewer of Python 3.6 use

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

    instead of

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

    r argument is passed for reading file not for copying

    0 讨论(0)
  • 2021-01-03 19:56

    Read the docs:

    shutil.copyfile(src, dst)

    Copy the contents (no metadata) of the file named src to a file named dst. dst must be the complete target file name; look at copy() for a copy that accepts a target directory path.

    0 讨论(0)
  • 2021-01-03 19:56

    use shutil.copy instead of shutil.copyfile

    example:

    shutil.copy(PathOf_SourceFileName.extension,TargetFolderPath)
    
    0 讨论(0)
  • 2021-01-03 19:57

    First of all, make sure that your files aren't locked by Windows, some applications, like MS Office, locks the oppened files.

    I got erro 13 when i was is trying to rename a long file list in a directory, but Python was trying to rename some folders that was at the same path of my files. So, if you are not using shutil library, check if it is a directory or file!

    import os
    path="abc.txt"
    
    if os.path.isfile(path):
        #do yor copy here
        print("\nIt is a normal file") 
    

    Or

    if os.path.isdir(path):
        print("It is a directory!")
    else:
        #do yor copy here
        print("It is a file!")
    
    0 讨论(0)
  • 2021-01-03 19:58

    Make sure you aren't in (locked) any of the the files you're trying to use shutil.copy in.

    This should assist in solving your problem

    0 讨论(0)
  • 2021-01-03 20:01

    I solved this problem, you should be the complete target file name for destination

    destination = pathdirectory + filename.*

    I use this code fir copy wav file with 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 讨论(0)
提交回复
热议问题