2017-09-28 2 views
0

Ich versuche, in einen von Python generierten Ordner zu schreiben. Python hat den Ordner als schreibgeschützt generiert, und die Forschung schlägt vor, dass ich os.chmod('Dump',0o777) verwenden sollte, um die Berechtigungen zu beheben. Dies funktioniert nicht für mich, und ich kann nicht in den generierten Ordner kopieren.chmod funktioniert nicht für pytest Ordnergenerierung

Ich verwende pytest, und mein Setup-Modul ist:

def setup_module(module): 
    """setup the environment for the tests to occur in, 
    which involves generating the ini files that will 
    be used. """ 
    os.system('mkdir Dump') 
    os.chmod('Dump',0o777) 

Und der Test beginnt mit:

def test_archive_large_zips(): 
    shutil.copyfile('Logs\\MultiPRMLogs.zip','Dump') 

Der Fehler, der oben kommt, ist:

src = '\\Logs\\MultiPRMLogs.zip', dst = 'Dump' 
def copyfile(src, dst, *, follow_symlinks=True): 
    """Copy data from src to dst. 

    If follow_symlinks is not set and src is a symbolic link, a new 
    symlink will be created instead of copying the file it points to. 

    """ 
    if _samefile(src, dst): 
     raise SameFileError("{!r} and {!r} are the same file".format(src, dst)) 

    for fn in [src, dst]: 
     try: 
      st = os.stat(fn) 
     except OSError: 
      # File most likely does not exist 
      pass 
     else: 
      # XXX What about other special files? (sockets, devices...) 
      if stat.S_ISFIFO(st.st_mode): 
       raise SpecialFileError("`%s` is a named pipe" % fn) 

    if not follow_symlinks and os.path.islink(src): 
     os.symlink(os.readlink(src), dst) 
    else: 
     with open(src, 'rb') as fsrc: 
      with open(dst, 'wb') as fdst: 
E    PermissionError: [Errno 13] Permission denied: 'Dump' 

C:\Users\pet172\AppData\Local\Programs\Python\Python36-32\lib\shutil.py:121: Per 
missionError 

Ist Da ist etwas Offensichtliches, das ich vermisse?

Antwort

1

Wird diese Zeile nicht versuchen, das Verzeichnis "Dump" zu öffnen und darauf wie eine Datei zu schreiben?

with open(dst, 'wb') as fdst: 

Vielleicht, wenn Sie den gesamten Pfad passieren, wie

shutil.copyfile('Logs\\MultiPRMLogs.zip','Dump\\some_file.txt') 
+1

Das ist es fixiert, perfekt. Vielen Dank –