为列表创建动态名称

时间:2015-07-09 10:55:48

标签: python list csv python-3.x

shapefile我创建了一些csv files,但我不知道每次会创建多少个csv filesroad_1的名称为road_2road_1等。 在这些文件中,我有坐标。我想把每个csv文件的坐标放在列表中。

因此对于x_1, y_1, z_1我想要3个列表: x_2, y_2, z_2 对于road_2: list+'_'+i等。

我试着在循环中命名列表,在那里我得到了这个坐标:Sub Button1_Open() Button1.OnClick MsgBox("Tester") End Sub 我在迭代创建的文件数,但是我无法连接列表和字符串。

**

修改

**

好的,有些人认为这个主题是重复的,足够公平。但只是说我必须使用一个字典并不能回答我的所有问题。我曾想过使用一个字典,但我的主要问题是创建名称(列表的名称,或者是字典的关键字)。我必须在一个循环中创建它,不知道我必须创建多少。因此,列表(或键)的名称应该有一个变量,该变量必须是道路的编号。而且我在这里遇到了问题。

正如我之前所说,在我的循环中,我尝试使用迭代循环中的变量来命名我的列表,但这不起作用,因为它不可能用字符串连接列表。我可以使用许多空键创建一个空的词典:值对,但我仍然需要通过循环中的键名来添加dict中csv文件的值。

1 个答案:

答案 0 :(得分:2)

由于多次询问我不会编写代码但只指向正确的方向(可能采用不同的方法)。

使用将返回文件名的glob模块。类似的东西:

import glob
for csvFileNames in glob.glob("dir/*.csv"):

会将每个文件名返回到变量csvFileNames

然后,您只需使用以下内容打开csv Files

with open(csvFileNames, "r") as filesToRead:
    for row in filestoRead:
        #the structure of you csv File is unknown so cannot say anything here

然后很简单。找到您感兴趣的列,并使用您需要的变量作为键创建一个dicts。使用计数器递增。所有信息都在那里!