问题:我想遍历文件夹以搜索某些文件类型,然后使用程序和name.ext作为参数执行它,然后运行更改输出名称的python脚本的第一个程序。
我知道可能有更好的方法可以完成上述操作,但是我想到的是:
[BAT]
for /R "C:\..\folder" %%a IN (*.extension) do ( SET name=%%a "C:\...\first_program.exe" "%%a" "C:\...\script.py" "%name%" )
[PY]
import io
import sys
def rename(i):
name = i
with open('my_file.txt', 'r') as file:
data = file.readlines()
data[40] ='"C:\\\\Users\\\\UserName\\\\Desktop\\\\folder\\\\folder\\\\' + name + '"\n'
with open('my_file.txt', 'w') as file:
file.writelines( data )
if __name__ == "__main__":
rename(sys.argv[1])
预期结果::我希望python文件更改名称,但是将其放入控制台一次之后,它似乎仍然保留在脚本中。英美烟草公司没有改变它,它困扰着我。
PS。如果有更好的方法,我将很高兴认识它。
答案 0 :(得分:0)
这是linux bash版本,我确定您可以更改循环等以使其作为批处理文件代替您的*.exe
,而我将cat
用作通用输入输出示例
#! /bin/sh
for f in *.txt
do
suffix=".txt"
name=${f%$suffix}
cat $f > tmp.dat
awk -v myName=$f '{if(NR==5) print $0 myName; else print $0 }' tmp.dat > $name.dat
done
这将产生以输入*.dat
文件命名的“唯一”输出*.txt
文件。这些文件由cat
(实际上是*.exe
)处理,并将输出放入一个临时文件。最终,这是通过awk
在此处更改第5行来处理的。如上所述,将输出放置在唯一文件中。