2016-06-29 15 views
0

4時間ごとにファイルが必要に応じて新しい情報で更新されます。つまり、その特定のファイルについて新しい情報が処理された場合(ファイルは人に対応します)。書き込み禁止ファイルの書き換え

私はこのコマンドを実行して、.stpファイル(4時間ごとに更新されるもの)を.xmlファイルに変換します。

rule convert_waveform_stp: 
    input: '/data01/stpfiles/{file}.Stp' 
    output: '/data01/workspace/bm_data/xmlfiles/{file}.xml' 
    shell: 
     ''' 
     mono /data01/workspace/bm_software/convert.exe {input} -o {output} 
     ''' 

私のスクリプトがSnakemake(のpythonベース)であるが、私はシェルコマンドを通じてconvert.exeを実行していますよ。

すでにconvert.exeを使用して処理されているものでエラーが発生します。それらはconvert.exeによって書き込み保護されて保存され、実行ファイル自体の中でこれをバイパスするオプションはありません。

エラーメッセージ:

ProtectedOutputException in line 14 of /home/Snakefile: 
Write-protected output files for rule convert_waveform_stp: 
/data01/workspace/bm_data/xmlfiles/PID_1234567.xml 

私はまだそれらがライトプロテクトされたいのですが、また、必要に応じてそれらを更新できるようにしたいと思います。

書き込み保護されたファイルに書き込むためにシェルコマンドに追加できるものはありますか?

+1

ドゥあなたは書き込み禁止が意味することを理解していますか? – 123

+0

はい。私はこれが本当に最高のセットアップではないことを知っています。 これについてどうやったらいいですか? – VickiT05

+0

ライトプロテクトを解除して後で戻してください。 – Jdamian

答えて

1

は、OS標準のライブラリパッケージを見てみましょう:

https://docs.python.org/3.5/library/os.html?highlight=chmod#os.chmod

それは、次の警告でのchmodすることができます:Windowsは(chmodコマンドをサポートしていますが

)、あなただけ設定することができます(stat.S_IWRITEstat.S_IREADの定数または対応する整数値を介して)ファイルの読み取り専用フラグを返します。その他のビットはすべて無視されます。

@ VickiT05、私はあなたがpythonでそれを望んだと思った。これを試してみてください:

チェック

ls -l [your file name] 

stat -c %a [your file name] 

変更保護された元のファイルのパーミッションを元のファイルモードまたは何モードに

chmod 777 [your file name] 

変化にあなたが望むに

chmod [original file protection mode] [your file name] 
+0

ありがとうございます。 Linuxのシェルコマンドに相当するコマンドはありますか? – VickiT05

+0

@ VickiT05、上記のbashコマンドを追加しました。彼らに行きなさい。 – ivan7707

+0

ありがとうございます@ ivan7707 私はもともとPythonを求めた、あなたは正しいです。 しかし、私は周りにいくつかの事を変更した後、bashスクリプトでそれが必要でした。 – VickiT05

関連する問題