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 导入我的 main.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读取文件属性的主要内容,如果未能解决你的问题,请参考以下文章