2

私はこのデータを処理するためのpythonic(sp ?!)の方法を見つけようとしてインターネットを精査してきました。

毎日、.dbf形式で大量のデータを受信します(うまくいけば)-次に、このデータをシェープファイルとして保存する必要があります。

誰かが私のプロセスに関するリンクや提案を持っていますか?

4

4 に答える 4

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'))
于 2011-02-21T10:25:05.473 に答える
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ます。

于 2011-02-21T10:11:09.553 に答える
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")
于 2011-02-21T11:39:03.177 に答える
0

ArcGISを使用せずにそれを実行したい場合は、サブプロセスを介してOGRのpythonバインディングまたはogr2ogrユーティリティを使用できます。Windowsのバッチファイルを介してユーティリティを使用できます。これは、実行することがたくさんある場合に、すべてのファイルに対してアークプロセスを呼び出すよりもはるかに高速です...

拡張子を変更することは問題ではないことをご存知のように、特定の形式が必要です。

于 2011-03-10T18:01:09.490 に答える