0
pathString="E:\new folder\Study\Batch\test_project_nuke\test_render\testImg_###.jpeg"

最初に拡張子を分離しようとしましたが、 \t の存在が文字列 \t tab に変換されることがわかりました。

また、私はこの方法を試しました

numberOfSplChar=pathString.rfind("#") - pathString.find("#")
print numberOfSplChar

そして、1つ少ないことがわかりました..

4

2 に答える 2

2

文字列内の「#」の数を数えたい場合は、str.countメソッドを使用します。

pathString=r"E:\new folder\Study\Batch\test_project_nuke\test_render\testImg_###.jpeg"
pathString.count("#")
>>> 3

ファイルの拡張子を見つける必要がある場合は、os.path.splitextメソッドを使用します。

pathString=r"E:\new folder\Study\Batch\test_project_nuke\test_render\testImg_###.jpeg"
path, extension = os.path.splitext(pathString)
print path
>>> 'E:\\new folder\\Study\\Batch\\test_project_nuke\\test_render\\testImg_###'
print extension
>>> '.jpeg'

PS : 文字列で使用する場合はr(aw string) 修飾子を使用\します。あなたの例では、 E:\new" は次のように翻訳されている可能性があります。

"""E:
ew"""
于 2012-12-14T09:57:41.940 に答える
0
pathString="E:\new folder\Study\Batch\test_project_nuke\test_render\testImg_###.jpeg"

最初に拡張子を分離しようとしましたが、\tの存在が文字列\tタブを変換することがわかりました。

これが1つの問題です"\t"。文字列リテラル内のaはタブを意味します。あなたはそれを書く\\tか、生の文字列(r"\t")に入れるべきです。

また、私はこの方法を試しました

numberOfSplChar=pathString.rfind("#") - pathString.find("#")
print numberOfSplChar

そして1つ少ないことがわかりました。

もちろん。この単純な文字列を見てみましょう。

pathString = "a###b".

rfind()は3を与え、lfindは1を与えます。違いは最初から最後までの距離であり、数値より1つ少なくなります。したがって、1を追加するだけです。

しかし、次のような文字列に注意してください'a###b###c###d###e'-それらはどのように扱われるべきですか?

于 2012-12-14T10:12:33.693 に答える