重新标记文件以便盲目地处理它们

blind-files的Python项目详细描述


盲文件

生成从文件名到盲目但令人难忘的文件名的映射。这个 脚本假设您有一个包含文件和/或 包含实验样本的子目录。这些文件的名字和 目录显示样本属于哪个组,但是 文件没有。

脚本将把这些文件移动到一个新目录中,重命名它们,以便 新文件名不会显示样本属于哪个组。它也会 生成映射文件以指示新文件如何映射到原始文件 文件夹。

安装

运行pip3 install blind_files

运行

这个脚本接受一个输入目录,并生成一个包含脚本的目录, blind.sh,可用于隐藏输入目录中的文件。它也 生成一个映射csv,mapping.csv,可以在用户 完成分析以查看原始名称如何映射到盲名称。

脚本有两种操作模式:

使用分隔符

在第一种操作模式中,可以指定一个分隔符来使用 将替换每个文件名中分隔符之前的所有文本。为了 示例:

blind_files \
   --mode delimiter \
   --delimiter _foo \
   --input-dir input_dir \
   --output-dir output_dir \
   --mapping-dir mapping_dir

在这种情况下,如果input_dir包含以下文件:

sample_1_foo.txt
sample_1_foo-bar.csv
sample_2_foo.txt
hello.txt

然后在运行mapping_dir/blind.sh之后,output_dir将包含

golf_elbow_foo.txt
golf_elbow_foo-bar.csv
co-producer_reputation_foo.txt
hello.txt

mapping_dir中,您还将找到一个包含以下内容的文件mapping.csv

original,blinded
sample_1,golf_elbow
sample_2,co-producer_reputation

限制

这将只替换输入目录顶层的名称。如果你 具有更复杂的嵌套目录结构,其中标识符名称可以 要隐藏在目录树中,请使用下面描述的标识符列表方法。

使用标识符列表

在第二种操作模式中,可以指定 当在输入目录树中遇到它们时,应将其隐藏。 例如,如果identifiers.txt包含以下内容:

group_a_1
group_b_1

然后运行

blind_files \
   --mode identifiers \
   --identifiers identifiers.txt \
   --input-dir input_dir \
   --output-dir output_dir \
   --mapping-dir mapping_dir

在这种情况下,如果input_dir包含以下文件:

group_a_1/group_a_1/foo.txt
group_b_1/group_b_1/foo.txt
hello.txt

然后在运行mapping_dir/blind.sh之后,output_dir将包含

head_bottle/head_bottle/foo.txt
eponym_curtain/eponym_curtain/foo.txt
hello.txt

mapping_dir中,您还将找到一个包含以下内容的文件mapping.csv

original,blinded
group_a_1,head_bottle
group_b_1,eponym_curtain

限制

任何标识符都不能是任何其他标识符的子字符串。例如,它是 不允许有标识符sample_1sample_11。然而, sample_01sample_11就可以了。

一般限制

  • 这个脚本应该可以在任何平台上运行,但只在mac os上测试过。
  • 这个脚本应该通过简单地移动符号链接来处理符号链接,而不是 但这种行为还没有经过测试。

学分

此包是用 Cookiecutter

来自here的名词列表。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
?: 在Java中:如何更合理地组合res和resString?   java Jackson序列化/反序列化空值   java编辑JTable单元格,作为JTree节点   java为什么我总是遇到I/O异常?   java AspectJ declare annotation@method不起作用   java为JavaFX图像使用JarURLInputStream   java无法单击链接以清除巡更弹出窗口   javaee中书店应用逻辑的mysql问题   java Android OnClick播放声音并更改按钮图像。   java Spark流式卡夫卡消费者   java为什么这个文件上传线程(ServletFileUpload.parseRequest)被阻止?   java是否可以将jtable模型分成5个不同的模型?   java向wsdl2java生成的类添加wssecurity   java在两次运行之间的双重计算中略有变化