shell腳本運行python命令


1.現在的python通常使用argparse來傳參,可以在運行python文件時對超參數的值進行改變,可以不用改變代碼,也可以多組參數同時測試。

但是如果要對大量超參數進行嘗試(煉丹)時,手動輸入似乎力有不逮。因此shell腳本就有用武之地。

可以用一個循環將所有超參數依次輸入。

for((i=1000;i<=40000;i=i+1000));
do
  python test.py -m params/${i}.pth
done  

但是要注意,shell在windows下的換行符和linux下的不通用。

解決方法:

https://blog.csdn.net/MyOracleFei/article/details/103142172?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control  

(在notepad++ 中,編輯→文檔格式轉換→轉為Unix格式,然后再去Linux中運行腳本,就可以了。)

2.but:

filename='test_0.0.lst'
for line in $(cat $filename)
do
 echo "data_dir = '../result/param_0.0/${line}'"
done

  

-----------------------------------------
實際輸出: "ir="/lee/bdcn_500_full
期待輸出: dir="/lee/bdcn_500_full"  

這是因為依賴的test_0.0.lst文件編碼方式是windows的,亂碼了。需要將test_0.0.lst文件同樣用Notepad++轉碼一下。

 

3.另外:如果覺得Notpad++麻煩,也可以在pycharm里面直接改編碼:界面右下角

 

 

 

 

選這個就可以。

雖然看起來不如notpad++直觀(notpad++要設置可見所有字符),但是勝在方便。

 4.注意:與python不同,shell對空格敏感,多余的空格會報錯(不是所有的都會報錯,但是何必為難自己?),不要加多余的空格


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM