0

これは私の問題です:

fpaths=os.listdir(ligand_names_list[0].replace("'", "\\'"))
OSError: [Errno 2] No such file or directory: "5-iodoindirubin-3\\'-oxime"

という名前のファイルがありますが、見つけること5-iodoindirubin-3'-oximeができませんos.listdir()。このスレッドAdding backslashes without escaping [Python]に触発された別の試みを次に示します。

fpaths=os.listdir(ligand_names_list[0].__ repr __())
OSError: [Errno 2] No such file or directory: '"5-iodoindirubin-3\'-oxime"'

この場合の問題は、先頭の一重引用符を削除する方法がわからないことです。何か案が?

4

1 に答える 1

6

何もエスケープする必要はありません。文字列リテラルをコードに入力するときにだけエスケープする必要があります。文字列が正しい値になったら、そのまま使用できます。

ファイルは現在のディレクトリにありますか、それとも他のディレクトリにありますか? (現在のディレクトリは、変更していない限り、Python スクリプトがあるディレクトリと同じです。)現在のディレクトリにない場合は、見つからない理由が説明されます。

(あなたはそれがファイルだと言います。あなたがそれを呼び出しos.listdir()ているので、それがディレクトリであることを願っています...)

于 2013-09-25T22:27:57.600 に答える