遍历文本文件并调用Python脚本生成文件中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历文本文件并调用Python脚本生成文件中相关的知识,希望对你有一定的参考价值。
我想在我的makefile从某个子文件夹检索所有文本文件(目前我只能一个),并在一个循环中调用特定的python脚本与每个文本文件作为输入参数。
这是代码我目前有:
run_analysis:
@echo "Get text files"
txt_files=$(wildcard ./input/*.txt)
@echo "Current text files are:"
@echo $(txt_files)
for txt_file in $(txt_files); do
@echo "Iteration"
@echo $(txt_file )
python ./scripts/my_test_script.py $(txt_file ) ;
done
这似乎通配符结果没有存储在变量。
我的输出看起来如下:
Get text files
txt_files=./input/test_text_1.txt
Current text files are:
for txt_file in ; do
@echo "Iteration"
@echo
python ./scripts/my_test_script.py ;
done
答案
在一个Makefile
配方每条线在默认情况下一个单独的壳实例执行。
保存在一个变量中的文件没有出现什么用处呢。只是内联通配符。
run_analysis:
for txt_file in ./input/*.txt; do
python ./scripts/my_test_script.py "$$txt_file";
done
(还要注意如何txt_file
是一个shell变量,而不是make变量)。
更妙的是,所以它接受输入的文件列表改变你的Python脚本。
run_analysis:
python ./scripts/my_test_script.py ./input/*.txt
也许与Python脚本里面logging.debug()
如果你想看看到底是什么在做不断增加喋喋不休。不同于硬编码echo
,logging
可以轻松,一旦你有信心,你的代码工作关闭。
以上是关于遍历文本文件并调用Python脚本生成文件中的主要内容,如果未能解决你的问题,请参考以下文章