1

Python でいくつかの長いファイル パス (Windows) を操作しようとしていますが、いくつかの問題に遭遇しました。ここで質問を読んだ後、os.stat(filepath) で使用するには、長いファイル パスの前に '\\?\' を追加する必要があるように見えます。私が抱えている問題は、バックスラッシュで終わる文字列を Python で作成できないことです。ここでの質問は、Python では文字列を単一の「\」文字で終了することさえできないことを指摘しています。

Python 標準ライブラリまたは他の場所に、既に持っているファイル パスの前に単に '\\?\' を追加できるものはありますか? または、Python を使用して Windows で長いファイル パスを操作するための他の回避策はありますか? それはとても簡単なことのように思えますが、私は一生それを理解することはできません.

4

2 に答える 2

3

「\\\\?\\」は、必要な文字列を正確に提供するはずです。

より長い答え: もちろん、Python ではバックスラッシュで文字列を終了できます。それが「生の」文字列(「r」で始まる文字列)の場合は、そうすることができません。通常、(多くの) バックスラッシュを含む文字列に使用するもの (悪名高い「つまようじの傾き」症候群を避けるため ;-))

于 2009-12-26T12:49:11.340 に答える
0

生の文字列を使用する場合でも、次のようにバックスラッシュで終了できます。

>>> print r'\\?\D:\Blah' + '\\'
\\?\D:\Blah\

あるいは:

>>> print r'\\?\D:\Blah' '\\'
\\?\D:\Blah\

Pythonはリテラル文字列を1つに連結するためです。

于 2009-12-26T21:31:29.150 に答える