2016-05-12 103 views
-4

我有ArcGIS Desktop 10的ArcPy脚本,我正在执行几个功能。其中一个功能将与地图文档关联的所有图层复制到数据库。我想复制除以.sid结尾的文件之外的所有文件。如何在Python中使用.endswith来省略文件扩展名?

这是我的代码片段。我不想.sid扩展名在datasetNamedataSource变量中。我怎样才能让下面更Pythonic,使我不包括.sid文件。

for lyr in lyrList: 
        lyrName = lyr.name 
        SidData = " " 
        SidDataName= " " 
        if lyr.supports("dataSource"): 
         lyrDatasource = lyr.dataSource 
         lyrDataSetName = lyr.datasetName 
        if lyrDatasource.endswith(".sid"): 
         lyrDatasource == SidData 
        else: 
         pass 

        if lyrDataSetName.endswith(".sid"): 
         lyrDataSetName == SidDataName 
        else: 
         pass 
+2

你的代码是很迷茫。 'lyrDatasource == SidData'不会做任何事情。 'pass'不会做任何事情。所以你的'如果lyrDataSetName.endswith(“。sid”)'语句都没有做任何事情。我不知道你在做什么。 – khelwood

+0

我看到,我试图省略lyDatasource和lyrDataSetName以.sid结尾的任何文件 –

回答

1

我不知道这是一个微不足道的问题,或者我错过了一些东西。您可以简单地使用not关键字。

​​

因此,这将是这样的:

if not datasetName.endswith('.sid'): 
    # Execute only if the file does NOT end with '.sid' 
else: 
    # Execute if file ends with '.sid' 
相关问题