运行带有相同序号文件的两个不同文件夹中的python代码的Shell脚本

2024-10-02 02:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件夹,每个文件夹包含的文件有相同的编号系统,这是文件名的一部分。 例如

文件夹1具有:

  001file_read.txt, 002file_read.txt, until 650file_read.txt

文件夹2具有:

  001filtr.tsv, 002filtr.tsv, until 650filtr.tsv

我想使用shell脚本运行一段python代码,该脚本基本上如下所示:

 python my_python_prog.py 001file_read.txt  001filtr.tsv

问题是因为我在两个文件夹中都有大量的文件。我想找到一种方法,只运行一次命令,它将自动运行file001从folder1到file001到folder2,file002从folder1到file002从folder2,依此类推,直到两个文件夹的file650。如何使用shell脚本实现这一点?你知道吗

非常感谢你的帮助


Tags: 文件txt脚本文件夹readtsv文件名系统
1条回答
网友
1楼 · 发布于 2024-10-02 02:35:09

如果有bash,可以使用如下脚本:

#!/bin/bash 

for i in {001..650}; do
    file_read=dir1/${i}file_read.txt
    file_filtr=dir2/${i}filtr.tsv
    if [[ -f $file_read ]] && [[ -f $file_filtr ]]; then
        python my_python_prog.py "$file_read" "$file_filtr"
    fi
done

它遍历从000650的所有数字,检查这两个文件是否都存在,如果存在,则执行python命令。你知道吗

如果没有bash,可以通过做一些更改来实现相同的效果:

#!/bin/sh

while (( ++i <= 650 )); do
    n=$(printf '%03d' "$i")
    file_read=dir1/${n}file_read.txt
    file_filtr=dir2/${n}filtr.tsv
    if [ -f "$file_read" ] && [ -f "$file_filtr" ]; then
        python my_python_prog.py "$file_read" "$file_filtr"
    fi
done

或者,您可以修改python脚本,在其中执行循环,并使用os.path.isfile()验证这两个文件是否存在。这种方法的优点是不需要调用脚本650次。你知道吗

相关问题 更多 >

    热门问题