2016-10-12 12 views
5

私はファイルを削除する機能を作っています(ファイル拡張子なし)FIFOファイル名を渡すとき拡張子を持たないファイルを削除するにはどうすればよいですか?

def deleteFile(deleteFile): 
    if os.path.isfile(deleteFile): 
     os.remove(deleteFile) 

はしかし、これは、OSモジュールによって受け付けられません。 特に私は、サブプロセスが 'Testpipe'という名前のFIFOファイルを作成しています。 呼び出すとき:

os.path.isfile('Testpipe') 

それはFalseになります。ファイルは使用中/開かれていないか、そのようなものではありません。 PythonはLinuxで動作します。

どうすればそのようなファイルを正しく削除できますか?

+0

あなたは 'os.path.exists(DELETEFILE)を試すことができなくos.path.isdir(DELETEFILE ) '。また、関数のようにパラメータの名前を付けないでください。 –

+0

機能は 'os'モジュールでは一般的に拡張子の有無にかかわらずファイルを受け付けます。問題はおそらく、あなたが渡しているものは、 'isfile()'が 'False'を返すようなディレクトリのような、何か他のものの名前です。 – martineau

答えて

6

isfile普通ファイルを確認します。

あなたはそれが存在するが、かどうかをチェックすることで、このようにそれを回避することができないディレクトリやシンボリックリンク:

def deleteFile(filename): 
    if os.path.exists(filename) and not os.path.isdir(filename) and not os.path.islink(filename): 
     os.remove(filename) 
+0

ありがとうございました...それはトリックでした。私は答えとして受け入れます、7分で使用可能な場合。 – Orpedo

関連する問題