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通过shell命令运行。

我在已经使用 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 命令中添加一些东西来覆盖写保护文件吗?

4

1 回答 1

2

看一下 os 标准库包:

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

它允许 chmod 具有以下警告:

尽管 Windows 支持 chmod(),但您只能使用它设置文件的只读标志(通过stat.S_IWRITEandstat.S_IREAD常量或相应的整数值)。所有其他位都被忽略。

@VickiT05,我以为你想要它在 python 中。试试这个:

检查原始文件权限

ls -l [your file name]

stat -c %a [your file name]

将保护更改为 with

chmod 777 [your file name]

更改回原始文件模式或您想要的任何模式

chmod [original file protection mode] [your file name]
于 2016-06-29T13:12:38.827 回答