假设我有 1000 个 csv 文件,这些文件在文件夹中具有随机名称test
。我有一个 python 脚本script.py
。我想编写一个 bash 脚本,它会传递文件夹中每个文件的名称script.py
然后运行它,因此 bash 脚本应该运行script.py
1000 次,每次使用不同的文件名,例如,首先运行:
with open('records.csv','r') as in_file
Run Code Online (Sandbox Code Playgroud)
下一次运行
with open('vertigo.csv','r') as in_file
Run Code Online (Sandbox Code Playgroud)
我知道我可以在 python 中做到这一点,而无需像这样编写 bash 脚本
import glob
for filename in glob.glob('*.csv'):
# script here
Run Code Online (Sandbox Code Playgroud)
但是我正在做一些测试,因此我想在 bash 中进行
使用sys.argv[1]
以便从参数中获取文件名:
import sys
with open(sys.argv[1],'r') as in_file
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用各种方法将文件名作为参数传递。例如,使用find
:
find test/ -type f -name '*.csv' -exec /path/to/script.py {} \;
Run Code Online (Sandbox Code Playgroud)