我基本上只想調用我的字符串在「。」之前的部分。Python簡單的字符串方法
例如,如果我的文件名是sciPHOTOf105w0.fits,我想調用「sciPHOTOf105w」作爲它自己的字符串,以便我可以使用它來命名與其相關的新文件。你怎麼做到這一點?我不能只使用數字值「如果我的文件名是'文件',文件[5:10]」。我需要能夠收集點到點而不必計數,因爲文件名可以有不同的長度。
我基本上只想調用我的字符串在「。」之前的部分。Python簡單的字符串方法
例如,如果我的文件名是sciPHOTOf105w0.fits,我想調用「sciPHOTOf105w」作爲它自己的字符串,以便我可以使用它來命名與其相關的新文件。你怎麼做到這一點?我不能只使用數字值「如果我的文件名是'文件',文件[5:10]」。我需要能夠收集點到點而不必計數,因爲文件名可以有不同的長度。
In [33]: filename = "sciPHOTOf105w0.fits"
In [34]: filename.rpartition('.')[0]
Out[34]: 'sciPHOTOf105w0'
In [35]: filename.rsplit('.', 1)[0]
Out[35]: 'sciPHOTOf105w0'
您還可以使用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
您可以使用.index()
在一根繩子上找到一個字符串的第一次出現。
>>> filename = "sciPHOTOf105w0.fits"
>>> filename.index('.')
14
>>> filename[:filename.index('.')]
'sciPHOTOf105w0'
由於目標是刪除擴展名,'os.path.splittext()'更合適(即使路徑不包含或多個點,它也可以工作)。 – EOL
我覺得你真的應該考慮接受'splitext的一個()'的解決方案:他們處理所有的情況下正常(無網點的所有路徑,或多個點):這將引導誰擁有人同樣的問題,你更強大和相關的答案。 – EOL