1

必要に応じて、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

それらを書き込み保護したいのですが、必要に応じて更新できるようにしたいと考えています。

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

4

1 に答える 1

2

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

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

次の警告で chmod を許可します。

Windows は chmod() をサポートしていますが、ファイルの読み取り専用フラグを設定できるのは、(定数または対応する整数値を介して)stat.S_IWRITEだけです。stat.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]
于 2016-06-29T13:12:38.827 に答える