今天一切都有问题,第一次问一个问题,我甚至无法正确地在这里获得我的代码!从CSV文件中读取数据并使用该数据与pygame交谈
基本上我希望做的是从csv文件导入数据并使用它来选择并使用pygame显示图像,例如,
screen.blit(row[0],(0,0))
当行[0]是RAT1 CSV文件,这在我的代码被定义为:
Rat1 = pygame.image.load('Rat1.jpg').convert()
但是这个抛出了“的论调1必须pygame.Surface,不str的“这很公平,但我真的很努力地找到解决办法,并且找到了一些相当离奇的事情,至少在我看来是怪异的。
我对此很陌生,所以我能想到解决这个问题的最好方法是将csv文件中的行[0]更改为1,然后将其导入到我的程序中并创建一个整数从它变量,例如
x = row[0]
int(x)
if x == 1:
x = Rat1
然后插入到pygame中,例如,
screen.blit(x,(0,0))
这工作,如果我只是有X = RAT1作为一个全局变量,但是这样做如上X为= 1并没有改变,它保持为行[X]所以它只是不喜欢它。
它归结为这样的情况,当我试图测试有点...
import csv
out = open("CSVTest.csv","rb")
data = csv.reader(out)
data = [row for row in data]
out.close()
print row[0] #this causes it to print a 1, so I know
#it's working and reading as it should
x = row[0] #make a variable
int(x) #doesn't throw up an error, so I assume it
#has changed the csv string to an integer
print x #prints a 1 again
if x == 1:
print "hello?" #doesn't print, so clearly doesn't
#recognise x as an integer
if x == 49: #I'm getting desperate now, ASCII 1?!
print "hello?!" #No joy
所以,它似乎在地球上什么是不能做你的标准的字符串,如不会明显转换为整数。
我试过pygame.image.fromstring(),其中的答案可能在于,但我无法得到它的工作。
任何人都可以指出它有什么问题,以及如何从csv文件轻松地调用数据,并且至少可以将它识别为整数或甚至更好,插入到一些pygame代码中并显示出来?
我已经从csv文件中读取了一些东西,并且用pygame显示了图像,没有碰到什么问题,但是让它们交配看起来很难,当然,除了我之外。
任何帮助非常感谢!
非常感谢您的回复,我不太理解T2中的T2 = [map(int,x)]部分,因此我必须稍后再慢慢处理所有内容。 得到我的东西是,它一直说它是一个正在从csv读取的字符串,它应该是......“1”,我可以打印它,但它只是不会让我把它转换成一个整数,这看起来很奇怪,它是另一种奇怪的格式? –