如果需要,每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),但我通过shell命令运行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
我仍然希望它们受到写保护,但也希望能够根据需要更新它们。
我可以添加到shell命令中来写一些写保护文件吗?
答案 0 :(得分:1)
看一下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]