我正在使用python将DBF文件从一个文件夹移动到多个文件夹。这些来自S3桶,我解压缩并移动。有时会缺少DBF。如果发生这种情况,我正在尝试编码,以便如果文件不存在,脚本将移动到下一个文件。我认为这将是一个if/else
声明,但我遇到了其他部分的问题。
import arcpy, os
from arcpy import env
env.workspace = "E:\staging\DT_TABLES"
######Move Clackamas Pro41005.dbf######
in_data = "Pro41005.dbf"
out_data = "D:/DATATRACE/OREGON/OR_TRI COUNTY/Pro41005.dbf"
data_type = ""
if in_data == "Pro41005.dbf":
arcpy.Delete_management(out_data)
arcpy.Copy_management(in_data, out_data, data_type)
print 'Clackamas Moved'
else :
######Move Multnomah Pro41051.dbf######
in_data = "Pro41051.dbf"
out_data = "D:/DATATRACE/OREGON/OR_TRI COUNTY/Pro41051.dbf"
data_type = ""
arcpy.Delete_management(out_data)
arcpy.Copy_management(in_data, out_data, data_type)
print 'Multnomah Moved'
换句话说,如果Pro41005.dbf
不在压缩文件中,我喜欢脚本继续Pro41051.dbf
这是我要移动的八个文件中的两个。及时将有大约20个文件。
答案 0 :(得分:0)
您的IF语句现在只检查变量是否与您上面指定的文件名相同。所以它永远都是真的。
您需要检查文件是否存在。
import os
...
if os.path.isfile(in_data):