在python中将文本文件中的字符串作为变量读取

时间:2016-04-07 04:33:11

标签: python-2.7 csv

我对编程很新,并一直在寻找答案,但我想我在搜索中一直在问错误的问题。

基本上,我试图将.csv文件中的字符串解释为变量以用作参数。

无论如何,我有以下代码:

a = libtcod.Color(0, 176, 240)
b = libtcod.Color(100, 155, 200)
c = libtcod.Color(80, 055, 100)

def create_room(x, y, color):
    pass


y = 1

with open('Map.txt') as csvfile:
        readCSV = csv.reader(csvfile, delimiter = ',')
        for row in readCSV:
            x = 1
            for column in row:
                create_room(x, y, color)
                x += 1
            y += 1

通过.csv文件运行,并为文件中的每个x和y值提供列字符串。

因此,如果.csv文件读取' a,b,c',我想调用create_room(1,1,a),create_room(2,1,b)和create_room(3) ,1,c)。

相反,我认为我正在调用create_room(1,1,' a'),create_room(2,1,' b')和create_room(3,1,&# 39; c'),它没有给我我想要的东西。

这看起来应该很容易解决,但我要么找不到答案,要么找不到答案但是没有意识到这一点,嘿嘿(再次,我对蟒蛇和一般编程。)

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您应该创建一个字典,而不是名为abc的三个变量。这样,您可以查找字符串'a''b''c'以获取各自的值:

#Initialize a dictionary with the appropriate values
color_lookup = {
    'a': libtcod.Color(0, 176, 240), 
    'b': libtcod.Color(100, 155, 200), 
    'c': libtcod.Color(80, 055, 100)
}

#Then call create_room like this
create_room(x, y, color_lookup[color])