pycharm读取文件属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pycharm读取文件属性相关的知识,希望对你有一定的参考价值。

参考技术A PyCharm可以帮助读取文件属性。你可以打开文件浏览器,右击文件,然后单击“属性”来查看文件的所有信息,包括文件大小、创建日期和修改日期等等。

在 PyCharm 中使用 arcpy 读取 dbf?

【中文标题】在 PyCharm 中使用 arcpy 读取 dbf?【英文标题】:Read dbf with arcpy in PyCharm? 【发布时间】:2021-12-25 18:27:38 【问题描述】:

我已将 ArcGIS Desktop 10.7 表导出到 dbf 文件中。 现在我想在独立的 Python 中进行一些 GIS 计算。 因此,我启动了一个引用 ArcGIS Python 解释器的 PyCharm 项目,因此能够将 arcpy 导入我的 ma​​in.py。 问题是:我不想pip安装其他模块,但是不知道如何用arcpy正确读取dbf表。

#encoding=utf-8 
import arcpy
path=r"D:\test.dbf"
sc=arcpy.SearchCursor(path) # Does not work: IOError exception str() failed
tv=arcpy.mapping.TableView(path) # Does not work either: StandaloneObject invalid data source or table

dbf文件正确,可以读入ArcGIS。 有人可以给我一个想法,如何使用 arcpy 独立读取文件?

【问题讨论】:

【参考方案1】:

我的错, 在阅读了 Using cursor 方法后,我发现使用了

sc=arcpy.SearchCursor(path) # Does not work: IOError exception str() failed

方法是正确的,但在凌晨 3 点左右的时候,我有点筋疲力尽,错过了导致错误的路径中的错字。然而,一个更具描述性的错误消息,例如IOError could not open file 而不是 IOError exception str() failed 会解决我作为 acrGIS 新手的错误..:/

【讨论】:

【参考方案2】:

使用pandas

来自 ArcMap 的 Python 带有一些模块。您可以将数据加载到 pandas.DataFrame 并使用这种格式。 Pandas 有据可查,网上已经有很多关于它的问题。进行 groupby 或 table 操作也非常容易。

import pandas as pd
import arcpy


def read_arcpy_table(self, table, fields='*', null_value=None):
    """
    Transform a table from ArcMap into a pandas.DataFrame object

    table : Path the table
    fields : Fields to load - '*' loads all fields
    null_value : choose a value to replace null values
    """
    fields_type = f.name: f.type for f in arcpy.ListFields(table)
    if fields == '*':
        fields = fields_type.keys()
    fields = [f.name for f in arcpy.ListFields(table) if f.name in fields]
    fields = [f for f in fields if f in fields_type and fields_type[f] != 'Geometry'] # Remove Geometry field if FeatureClass to avoid bug

    # Transform in pd.Dataframe
    np_array = arcpy.da.FeatureClassToNumPyArray(in_table=table,
                                                 field_names=fields,
                                                 skip_nulls=False,
                                                 null_value=null_value)
    df = self.DataFrame(np_array)
    return df
# Add the function into the loaded pandas module
pd.read_arcpy_table = types.MethodType(read_arcpy_table, pd)

df = pd.read_arcpy_table(table='path_to_your_table')
# Do whatever calculations need to be done

使用光标

您也可以使用 arcpy 游标和dict 进行简单计算。

此页面上有关于如何正确使用游标的简单示例: https://desktop.arcgis.com/fr/arcmap/10.3/analyze/arcpy-data-access/searchcursor-class.htm

【讨论】:

以上是关于pycharm读取文件属性的主要内容,如果未能解决你的问题,请参考以下文章

ANT 从属性文件中读取属性,使用 ANT 属性

读取 JAR 文件外的属性文件

读取properties文件并获取属性值

文件中存在重复键值对时如何读取属性文件?

用Java读取属性文件

如何将属性文件读取到硒中的预期数据