算是写给自己看也方便自己记住。
最近运行python程序的时候学会了一个用法 -m, 具体的来说就是可以直接从当前root调用文件夹内的程序而不用担心相对关系。比如 在文件结构如下的时候
+Root ———————+
+–Data ——————-+
+—-32_1.npy————-+
+–Output—————–+
+–Scripts—————–+
+—- compare_data.py—+
+ main.py——————+
可以用 python -m Root.Scripts.compare_data 来调用程序。在用argparser设置了参数以后,参数的调用也可以直接从子文件夹开始就可以了,比如–data-dir Data/32_1.npy
在调用bash命令的时候可以活用 > 来调节输出,比如
python s.py 2>&1 >output.txt
和
python s.py >output.txt 2>&1
之间,前者将stderr映射到了terminal,但是只有stdout输出到了output.txt,而后者先将stdout映射到了output.txt,然后将stderr也映射到了同一个地址,导致的后果就是terminal里什么都没有,但是所有的结果都输出到了output.txt。bash里的小逻辑还真是挺有趣的。
这倒让我想起来在hpc上面交任务的时候,有时候要批量处理,我会做
for i in {1..15}; do cd a_$i; sbatch main.py; cd ..; done; end;
现在想起来,当时的代码要是写成现在可以指定输出文件夹的方式,跑起来就舒服多了,也不需要一直cd进文件夹去,哈!
Leave a Reply