100 個同名不同內容的 Python 腳本,需將列表 a = ["name1", ... "name100"] 中的名字分別替換進每個文件的 if name == "" 行,然後運行並保存輸出。
#!/bin/bash
# 名字列表,用冒號分隔
names="name1:name2:name3:...:name100"
# 遍歷當前目錄所有 .py 文件
n=1
for file in *.py; do
# 提取第 n 個名字
name=$(echo "$names" | cut -d: -f$n)
# 替換文件中的目標行
sed -i "s/if name == \"\"/if name == \"$name\"/" "$file"
# 運行並重定向輸出
python3 "$file" > "${file%.py}.txt"
((n++))
done
cut -d: -f$n:按冒號分割取第 n 字段sed -i:原地修改文件${file%.py}.txt:參數展開去除 .py 後綴加 .txtimport glob, subprocess
names = ["name1", "name2", ...] # 100 個名字
py_files = sorted(glob.glob("*.py"))
for i, (name, py_file) in enumerate(zip(names, py_files)):
with open(py_file, 'r') as f:
content = f.read()
content = content.replace('if name == ""', f'if name == "{name}"')
with open(py_file, 'w') as f:
f.write(content)
# 運行
with open(f"{py_file}.txt", 'w') as out:
subprocess.run(['python3', py_file], stdout=out)