2016-06-17 20 views
-1

私は、いくつかのディレクトリを読み込んでそれらのファイルを動的に作成するプログラムを持っています。事は '、&、(、)、'、 'のような特殊文字を持っているので、shutil.copy()はいくつかのファイルで失敗し続けるので、それらを動的にもエスケープする方法を知りたい。この宛先パスは動的に作成され、文字列を追加するだけで、他の関数や同様の関数では作成されません。特殊文字をエスケープしてファイルをパスにコピーする

例:

path = "/home/path/ma/gex/%s/%s/%s/" % (d[c][0],d[c2][1].upper(),driveDict[c2][1]) 

Shutil.copyは、ディレクトリが存在しないという例外をスローし続けるが、それがすでに作成ですので、それはディレクトリを見つけることができません。どのようにこの文字をエスケープするか、シャッターでそれらを読むように助けてください?

EDIT:ファイルはLinuxサーバ上にあり、既に10000個のファイルが特殊文字なしでコピーされています。エンコードの問題があり

+0

がhttp://stackoverflow.com/questions/35817/how-to-escape-os-system-callsを参照してください。 -in-python – emnoor

+0

おそらく 'r" path \ file "'を使用するべきです。 'shutil.copy'を使ってtxtファイルをコピーしようとしましたが、その名前に'、 '文字があり、動作しました。 – direprobs

答えて

0

、ちょうどあなたのpythonのコードに、この2行を追加します。

# -*- coding: utf-8 -*- 
import unicode_literals 
関連する問題