if/else 语句 - 移动文件并在文件不存在时继续
if/else statement - moving files and continuing if file does not exist
我正在使用 python 将 DBF 文件从一个文件夹移动到多个文件夹。这些来自 S3 存储桶,我解压缩并移动。有时会缺少 DBF。如果发生这种情况,我将尝试编写代码,以便如果文件不存在,脚本将移动到下一个文件。我认为这将是一个 if/else
语句,但我在处理 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 个文件。
您的 IF 语句现在只是检查变量是否具有您在上面分配的相同文件名。所以它永远是真的。
看来你需要的是检查一个文件是否存在
import os
...
if os.path.isfile(in_data):
我正在使用 python 将 DBF 文件从一个文件夹移动到多个文件夹。这些来自 S3 存储桶,我解压缩并移动。有时会缺少 DBF。如果发生这种情况,我将尝试编写代码,以便如果文件不存在,脚本将移动到下一个文件。我认为这将是一个 if/else
语句,但我在处理 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 个文件。
您的 IF 语句现在只是检查变量是否具有您在上面分配的相同文件名。所以它永远是真的。
看来你需要的是检查一个文件是否存在
import os
...
if os.path.isfile(in_data):