簡體   English   中英

Windows上的python zipfile模塊,太多斜杠

[英]python zipfile module on windows, too many slashes

我目前正在使用python 2.7和pygame 1.9進行游戲。 我將我的圖形存儲在graphics.dat ,這只是一個重命名的zip文件。 我用來將圖形加載到游戲中的功能是這樣的:

import pygame, zipfile, tarfile sys, os
from cStringIO import StringIO
from pygame.locals import *
def loadImage(filename, noAlpha=False):
    baseZip = zipfile.ZipFile(os.path.join("..", "Data", "graphics.dat"))
    imgData = baseZip.read(filename) #the "filename" argument is already os.path.join()'ed when I pass it to the function
    imgDataIO = StringIO(imgData)
    finalFileName = os.path.split(filename)
    preSurf = pygame.image.load(imgDataIO, finalFileName[1])
    if noAlpha:
        resultSurf = preSurf.convert()
    else:
        resultSurf = preSurf.convert_alpha()
    baseZip.close()
    return resultSurf

在Linux(Ubuntu 12.04)上它運行得很好,但在Windows上它總是會引發錯誤

“檔案中沒有名為folder \\\\\\\\\\\\\\ file.png的項目”

(我現在不在Windows上,所以我無法復制確切的錯誤文本,但它有很多“\\”)。

有解決方案嗎?

問題是zip文件中的文件名總是以正斜杠存儲,而不是反斜杠。

因此,在加載圖像時,您必須使用帶正斜杠的路徑作為路徑分隔符,例如'folder / image.png'。

我認為您需要使用'\\'拆分文件名並僅使用image.png,而不是文件夾\\ image.png。 試着告訴我們它是否有效。 我猜這是因為我不知道zip文件的內容以及您當前的工作目錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM