如何在Python中使用.endswith来省略文件扩展名?

时间:2016-05-12 15:01:03

标签: python

我有一个用于ArcGIS Desktop 10的ArcPy脚本,我正在执行多个功能。其中一个函数将与Map Document关联的所有图层复制到数据库。我想复制除以.sid结尾的文件以外的所有文件。

以下是我的代码片段。我不希望在.siddatasetName变量中使用dataSource个扩展名。如何使下面更多的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

1 个答案:

答案 0 :(得分:1)

我不确定这是一个微不足道的问题还是我遗漏了一些东西。您只需使用not关键字。

即可
>>> foo = "file.sid"
>>> foo.endswith('.sid')
True
>>> not foo.endswith('sid')
False

所以它会是这样的:

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