如何使用filename.find()?
我刚开始学习Python,正在试着理解一个脚本,其中有以下几行:
dotInd = fileName.find(".")
if dotInd <> -1:
newFC = fileName[0:dotInd]
outFC = newFC + "_buffer"
else:
outFC = fileName + "_buffer"
我还没搞明白fileName.find(".")在干什么,以及条件dotInd<>-1是什么意思。
(对这个<>的东西感到困惑)
任何帮助都很感谢,还有,哪里可以找到Python所有函数的作用列表吗?谢谢!
1 个回答
5
fileName
是一个标识符,指的是一个字符串类型的对象。你需要找的是 str.find()
这个方法。这个方法会返回 -1
,如果你要找的文本没有找到;如果找到了,它会返回文本的位置。
<>
是一种古老且不推荐使用的写法,实际上是 !=
的意思,它用来检查 '.'
是否被找到;如果找到了,就会用返回的位置来切割字符串,去掉从 '.'
开始到字符串末尾的部分。
这段代码可以更好地写成:
outFC = fileName.partition('.')[0] + '_buffer'
这样写的结果和使用 str.find()
以及检查输出的结果是一样的。想了解更多,可以查看 str.partition()
函数 的文档。
更正确的做法是使用 os.path.splitext()
函数,这样可以避免在一个前导的 .
(在 POSIX 系统中表示隐藏文件)上进行切割:
import os.path
outFC = os.path.splitext(fileName)[0] + '_buffer'