我基本上只想调用位于“。”之前的字符串部分。
例如,如果我的文件名是 sciPHOTOf105w0.fits,我想调用“sciPHOTOf105w”作为它自己的字符串,这样我就可以用它来命名一个与之相关的新文件。你怎么做到这一点?我不能只使用数字值“例如,如果我的文件名是'文件',文件 [5:10]。” 我需要能够收集所有内容而不必计数,因为文件名可以有不同的长度。
您也可以像这样使用 os.path:
>>> from os.path import splitext
>>> splitext('sciPHOTOf105w0.fits') # separates extension from file name
('sciPHOTOf105w0', '.fits')
>>> splitext('sciPHOTOf105w0.fits')[0]
'sciPHOTOf105w0'
如果您的文件恰好有更长的路径,这种方法也将考虑您的完整路径。
import os.path
filename = "sciPHOTOf105w0.fits"
root, ext = os.path.splitext(filename)
print "root is: %s" % root
print "ext is: %s" % ext
结果:
>root is: sciPHOTOf105w0
>ext is: .fits
In [33]: filename = "sciPHOTOf105w0.fits"
In [34]: filename.rpartition('.')[0]
Out[34]: 'sciPHOTOf105w0'
In [35]: filename.rsplit('.', 1)[0]
Out[35]: 'sciPHOTOf105w0'
您可以.index()
在字符串上使用来查找子字符串的第一次出现。
>>> filename = "sciPHOTOf105w0.fits"
>>> filename.index('.')
14
>>> filename[:filename.index('.')]
'sciPHOTOf105w0'