Python - 从不带单引号的目录中读取文件

Python - Reading files from Directory without single quotes

我想知道是否有一种方法可以从您的目录中读取不带单引号的文件。我的目录有几个具有相同后缀的地理数据框。我可以将它们全部读入并附加到列表中,但该列表将在每个 DataFrame 名称周围包含单引号,使其成为 str.

dir()
 'sub_geo_group_mangrove',
 'sub_geo_group_marsh',
 'sub_geo_group_multipolygon',
 'sub_geo_group_pan',
 'sub_geo_group_reedbed'

我正在使用这些文件插入循环,因此需要文件名本身不带单引号

编辑

所有数据框的格式如下:

sub_geo_group_mangrove.head(2)

    geometry    wetland
43  MULTIPOLYGON (((12.41310 -6.10921, 12.41274 -6...   mangrove
59  POLYGON ((12.30671 -6.15770, 12.30654 -6.15741...   mangrove

我正在尝试将每个 DataFrame 读入以下行:

我很确定,您在这里尝试实现的目标实际上是没有必要的。但我会根据我对您的要求的了解来回答您的问题。

因为,您正在尝试在循环结构中使用数据帧名称,我假设数据帧在循环范围内可用。

您已在示例中使用 dir() 命令显示。

来自 python 文档:

dir(...)
dir([object]) -> list of strings

If called without an argument, return the names in the current scope.

现在假设您的 DataFrame 名称所在的列表是

dfnames = ['sub_geo_group_mangrove','sub_geo_group_marsh','sub_geo_group_multipolygon',...]

根据我对你提到的问题的了解:

现在要循环遍历它们,您无法执行以下操作:

for df in dfnames:

    #do something with this df

因为 type(df) 是字符串。

此时您可以做几件事。我认为最理想的是:

for name in dfnames:
    df = vars()[name]

    # do something with this df

vars() 不带参数类似于 locals().

vars() returns 本地范围内使用的变量字典。

这个字典中的键是字符串类型的变量名,与它们关联的值是这些变量关联的数据。