【问题标题】:Python - Reading files from Directory without single quotesPython - 从没有单引号的目录中读取文件
【发布时间】:2021-06-01 08:15:41
【问题描述】:

我想知道是否有一种方法可以从您的目录中读取文件而不用单引号引起来。我的目录有几个具有相同后缀的地理数据框。我可以将它们全部读入并附加到一个列表中,但该列表将包含每个 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 读入以下行:

【问题讨论】:

  • 每个dataframe的数据存放在哪里?
  • 文件名始终是一个单独的字符串。这不会阻止您正确使用它:例如用熊猫阅读它(因为你提到了数据框)。
  • 它没有存储在任何地方。我在脚本的前面创建了地理数据框,然后尝试再次调用它们。
  • 所以如果我理解你是正确的,你想使用 DataFrames,它们存储在程序中,但你所拥有的只是它们的字符串格式的名称?
  • 是的,没错

标签: python string directory


【解决方案1】:

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

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

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

来自 python 文档:

目录(...)
dir([object]) -> 字符串列表

如果在没有参数的情况下调用,则返回当前范围内的名称。

现在让我们假设您的 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() 返回一个字典,包含在本地范围内使用的变量。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 2020-12-19
    • 2014-06-28
    • 2014-11-10
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多