Zipping files

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • dp_pearce

    Zipping files

    Hi all,

    I have come across an error while using zipfile and I can't seem to
    find somewhere that explains the problem. My script needs to be able
    to take text files from one drive and add them to zip files on another
    drive. The following seems to work just fine.

    import zipfile

    # write test file in working directory directory
    folder = "J:/"
    filename = "testing.tx t"
    fullpath = folder+filename
    fout = open(fullpath, 'wt')
    fout.write(str1 )
    fout.close()

    # Add text file to zip file on same drive
    zFolder = "J:/"
    zFilename = "testing.zi p"
    zFullpath = zFolder+zFilena me
    zout = zipfile.ZipFile (zFullpath, "w")
    zout.write(full path)
    zout.close()
    print fullpath, "successful ly added to", zFullpath

    However, if I change the drive letters to anything other than the
    drive from which the Python script is saved (e.g. run script from J:
    but zip to C:), I get the following warning:

    Traceback (most recent call last):
    File "J:/test.py", line 18, in <module>
    zout = zipfile.ZipFile (zFullpath, "w")
    File "C:\Python25\li b\zipfile.py", line 339, in __init__
    self.fp = open(file, modeDict[mode])
    IOError: [Errno 13] Permission denied: 'C:/testing.zip'

    Can anyopne shed some light on what I am missing here? If it has any
    relevance to the permissions part of the error, I am currently using
    Windows machines.

    Thanks in advance for your time.

    Dan

  • Tim Golden

    #2
    Re: Zipping files

    dp_pearce wrote:
    Hi all,
    >
    I have come across an error while using zipfile and I can't seem to
    find somewhere that explains the problem. My script needs to be able
    to take text files from one drive and add them to zip files on another
    drive. The following seems to work just fine.
    >
    import zipfile
    >
    # write test file in working directory directory
    folder = "J:/"
    filename = "testing.tx t"
    fullpath = folder+filename
    fout = open(fullpath, 'wt')
    fout.write(str1 )
    fout.close()
    >
    # Add text file to zip file on same drive
    zFolder = "J:/"
    zFilename = "testing.zi p"
    zFullpath = zFolder+zFilena me
    zout = zipfile.ZipFile (zFullpath, "w")
    zout.write(full path)
    zout.close()
    print fullpath, "successful ly added to", zFullpath
    >
    However, if I change the drive letters to anything other than the
    drive from which the Python script is saved (e.g. run script from J:
    but zip to C:), I get the following warning:
    >
    Traceback (most recent call last):
    File "J:/test.py", line 18, in <module>
    zout = zipfile.ZipFile (zFullpath, "w")
    File "C:\Python25\li b\zipfile.py", line 339, in __init__
    self.fp = open(file, modeDict[mode])
    IOError: [Errno 13] Permission denied: 'C:/testing.zip'
    >
    Can anyopne shed some light on what I am missing here? If it has any
    relevance to the permissions part of the error, I am currently using
    Windows machines.

    Is it possible that you don't in fact have permission
    to write to c:\? I seem to recall that non-power-users
    on XP don't have that permission, and I bet that Vista
    makes that even more restrictive.

    TJG

    Comment

    • dp_pearce

      #3
      Re: Zipping files

      When I saw "Permission denied", this was my suspicion. And I think you
      are very right. I have just gone back and tried writing to a file
      outside of C:, in this case C:/output/, and it seems to work again.

      Would I be right in guessing there is no way around this?

      Dan

      Comment

      • Tim Golden

        #4
        Re: Zipping files

        dp_pearce wrote:
        When I saw "Permission denied", this was my suspicion. And I think you
        are very right. I have just gone back and tried writing to a file
        outside of C:, in this case C:/output/, and it seems to work again.
        >
        Would I be right in guessing there is no way around this?
        Well, you could (presumably) alter your own user's
        groups / rights and/or the permissions on the root
        of the C: drive so that you *can* zip to that location.

        On the other hand, chucking random stuff into the
        root of the system drive has never been considered
        a brilliant idea. (Altho' I know a lot of people
        who do it :) ). Why not create a suitable folder
        lower down, or in your own %APPDATA% area, or using
        the tempfile module, depending on your needs?

        TJG

        Comment

        Working...