2011-02-18 103 views
2

我一直在网上淘试图找到一个Python的(SP?)的方式来处理这些数据..如何使用Python把一个.dbf成shape文件

我们每天都将收到数据的加载以.dbf格式(希望) - 然后我们需要将这些数据保存为shape文件。

有没有人有任何关于我的过程的链接或任何建议?

+0

不知道这是否准确,但:“发布的地图不包含实际的地理数据,而是链接到中央远程位置的数据集,这些位置可能由ArcMap服务器托管或通过Internet提供。” (http://www.fileinfo.com/extension/pmf)所以它可能不是您实际需要更新的pmf文件。 – 2011-02-18 12:46:56

+0

太托马斯!感谢您指出这一点! – 2011-02-21 07:31:44

+0

我已经编辑了我的帖子,现在是我的定义问题! – 2011-02-21 09:03:43

回答

0

它一直在模型生成器!

# (generated by ArcGIS/ModelBuilder) 
# Usage: DBF2SHAPEFILE <XY_Table> <Y_Field> <X_Field> <Output_Feature_Class> 
# --------------------------------------------------------------------------- 

# Import system modules 
import sys, string, os, arcgisscripting, datetime 

# Adds the creation date to all of the previous shapefiles in that folder 
filename = 'D:/test.txt' 
fileinfo = os.stat(filename) 
creation_date = datetime.date.fromtimestamp(fileinfo.st_ctime) 
os.rename(filename, filename + '-' + creation_date.strftime('%Y-%m-%d')) 

# Create the Geoprocessor object 
gp = arcgisscripting.create() 

# Load required toolboxes... 
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx") 

# Script arguments... 
XY_Table = sys.argv[1] 

Y_Field = sys.argv[2] 

X_Field = sys.argv[3] 

Output_Feature_Class = sys.argv[4] 

# Local variables... 
Layer_Name_or_Table_View = "" 

# Process: Make XY Event Layer... 
gp.MakeXYEventLayer_management(XY_Table, X_Field, Y_Field, Layer_Name_or_Table_View, "") 

# Process: Copy Features... 
gp.CopyFeatures_management(Layer_Name_or_Table_View, Output_Feature_Class, "", "0", "0", "0") 
1

关闭我的头顶:

import os 
import datetime 
myfile = "test.txt" 
creationdate = os.stat(myfile).st_ctime 
timestamp = datetime.datetime.fromtimestamp(creationdate) 
datestr = datetime.datetime.strftime(timestamp, "%Y%m%d") 
os.rename(myfile, os.path.splitext(myfile)[0] + datestr + os.path.splitext(myfile)[1]) 

重命名test.txttest20110221.txt

2

要将文件的creation_date追加到名称,需要使用os.stat()获取创建日期,然后使用os.rename()重命名该文件。您可以使用date.strftime()格式化日期字符串。

import datetime, os 

filename = 'original.ext' 

fileinfo = os.stat(filename) 
creation_date = datetime.date.fromtimestamp(fileinfo.st_ctime) 

os.rename(filename, filename + '-' + creation_date.strftime('%Y-%m-%d')) 
0

如果你想做到这一点,而不使用ArcGIS中,你可以使用OGR的Python绑定或ogr2ogr utility通过一个子进程。你可以通过一个windows批处理文件来使用该实用程序,如果你有很多事情要比每个文件都要调用arc进程要快得多...

如你所知,这不是改变扩展的问题,有一个特定的格式要求。