[英]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.