完全に堅牢ではない方法は、os.path.commonprefixを使用することです:
import os
Fullpath = 'c:\\users\\test\\appdata\\local\\temp\\tempDir\\common\\test.txt'
TempPath = 'c:\\users\\test\\appdata\\local\\temp\\tempDir\\'
print os.path.commonprefix([Fullpath, TempPath])
# c:\users\test\appdata\local\temp\tempDir\
関数はパスについて何も知らないことに注意してください。それはただのキャラクターごとの取引です。
次に、str.partition を使用して、関心のある部分を取得します。
>>> print Fullpath.partition(os.path.commonprefix([Fullpath, TempPath]))
('', 'c:\\users\\test\\appdata\\local\\temp\\tempDir\\', 'common\\test.txt')
次のような状況がある場合:
Fullpath = 'c:\\users\\test\\appdata\\local\\temp\\tempDir\\common\\test.txt'
TempPath = 'c:\\users\\test\\appdata\\local\\temp\\tempDir\\co'
共通のプレフィックスを os.path.dirname でラップすることをお勧めします
>>> os.path.dirname(os.path.commonprefix([Fullpath, TempPath]))
c:\users\test\appdata\local\temp\tempDir\
しかし、それでも次のような状況は修正されません。
Fullpath = 'c:\\users\\test\\..\\test\\appdata\\local\\temp\\tempDir\\common\\test.txt'
解析する前に完全な絶対パス名を解決する必要がある場所。