2021年12月28日

pt3(DVB)、python3によるスクリプトファイルで4波を同時受信。sparkylinux-6.1-amd64

python3で、1波しか受信できていませんでした。
python3のお勉強がちょっぴり進んだおかげで、
pt3カードの機能が全面的に使用可となりました。
まだ、完璧でなく、4波べた書き設定で、systemdでの
サービス化もできていません(xfce4の
「自動開始アプリケーション」頼りではありますが、
兎にも角にもpython3で、
ふつうにカードが使えるようになりました。
(元々はシェルスプリクトで問題なく設定できていました)

4波(地上波2波+bs2波)同時に音が出ているって、
映画やドラマでよくある、主人公が精神的に追い詰められ、
アタマの中にいろんな声が聞こえてきて、
アタマをかきむしるシーンのときのようで、おもしろいです。

#!/usr/bin/env python3

import os
import subprocess


os.chdir('/dev/dvb')

for ADAPTER in [ 0,1,2,4 ]:
for int1 in [ 20,21,22,23 ]:
dirname = 'adapter' + str(int1)
os.makedirs(dirname, exist_ok=True)
os.chown(dirname, 0, 0)
os.chmod(dirname, 0o755)
completed = subprocess.run(['/usr/bin/nice', '--4', \
'/usr/local/bin/fuse_b25', '--target', '/dev/dvb/adapter0', \
'/dev/dvb/adapter20', '-o', 'allow_other'])
completed = subprocess.run(['/usr/bin/nice', '--4', \
'/usr/local/bin/fuse_b25', '--target', '/dev/dvb/adapter1', \
'/dev/dvb/adapter21', '-o', 'allow_other'])
completed = subprocess.run(['/usr/bin/nice', '--4', \
'/usr/local/bin/fuse_b25', '--target', '/dev/dvb/adapter2', \
'/dev/dvb/adapter22', '-o', 'allow_other'])
completed = subprocess.run(['/usr/bin/nice', '--4', \
'/usr/local/bin/fuse_b25', '--target', '/dev/dvb/adapter3', \
'/dev/dvb/adapter23', '-o', 'allow_other'])


pt3x4_2021-12-28_09-58-47.jpg

上手くできなかったときから、変えたのは、
for行の後ろの [ ]を使うときの前後に半角スペースを
きっちり入れただけです。pythonは、そういうところが
五月蝿い? あとインデント(行下げ)にも
見やすさだけでなく意味をもたせているようですね。

まだまだ不完全なコードであろうことは、
容易に想像できます。ですが、機能はしました。


posted by ブログ開設者 at 10:33| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

2021年12月27日

知り初めし数字と数値の違い。python日記-8

それが、数字か、数値かは、コンピューターでは
いちいち規定してやらないと、理解できないらしいです。
そんなん、見りゃあ、わかるじゃん、といっても
ダメなのであります。

シェルスクリプトを習っていたサイトのシェルスプリクトの
授業?が終わってしまったので、同サイトの
python入門のほうへ移りました。
言語の違いを探索しながら、というのもいいかな、
と思いまして。一言語ずつこなせるようになっていく
のが筋でしょうが、昔から集中するのが苦手というか、
多角的にモノを観たいクセがありまして。

で、python入門は、といえば、python2で書かれていて、
云われるとおりにやっても、動きません。
講義をpython3に置き換えなければなりません。
想像より2と3では、違っていましたね。

そこで、いきなり(私にすればの)難問題にぶつかりました。
なんらかの数を入力してもらい、その数を2倍にした数を
出力表示せよ、との課題です。
じぶんで作ったコードでは、54と入力すると、
5454と表示。文字列がドッキングする
ばかりで、どう変えても計算しないんです。

検索の鬼と化してたどり着いた答えが以下でした。
#!/usr/bin/env python3

input_number = input("Input any number: ")
if str(input_number).isdecimal():
int1 = int(str(input_number))
num = (int1 * 2)
print("Double score is :", num)

ifの行と次の行は、この文字列が、数値であるなら、
数値の変数に変換し、それをまた2倍の値にするべく
新たな変数に代入し、みたなことをしたら
上手く行きました。変数を3つも使わずに、
きっとできるんだと思います。とりあえず、
課題はクリアです。

double_score-2_2021-12-27_13-05-00.jpg

除夜の鐘を意識しました。幼少のみぎりには、
あちこちの寺からこの鐘の音が聞こえてくるところでした。
ゆく年くる年なんかは観ていず、
ひとり静かに聞いていたりしました。
ハーァ、あっという間に、一年が過ぎていきます。


posted by ブログ開設者 at 13:21| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

課題★最後の課題でした。シェルスクリプト深談-9

課題は、最後にしては比較的易しくて、
それほど時間を要しませんでした。

テキストファイルを引数として使用し、
行数と、最初と最後の1行を表示せよ、
みたいなことが課題でした。
#!/bin/sh

file1=$1

if [ -f $file1 ]
then
wc -l $file1
head -n 1 $file1
tail -n 1 $file1
else
echo "そんなファイル、ねえよ"
fi

ship_execute_2021-12-26_23-22-28.jpg

ship_error_2021-12-26_23-39-47.jpg

文書の内容は、歌詞です! 大好きな曲の。
There is a ship.です。

there_is_a_ship-2_2021-12-26_23-10-03.jpg

最初に聴いたのが、いつだったか思い出せませんが、
当初、ベトナム戦争時の反戦歌で、"岸壁の母"の米国版かな、
と思っていました。意味を調べてみたりすると、
成就させられなかった愛の深い悲しみたいな内容だったです。
原曲はアイルランドの曲で、アメリカのフォークグループ:
ピーター、ポール&マリーが世界に広めました。

話を戻して、、、else以下は、勝手な付け足しです。
ファイル名をタイプし間違えて実行したときとか。

あと、正しい行数を表示させるには、
ファイルの最終行の後ろに改行が入っていないと、
1行少なく表示されるようでした。

引数を受け取ってスクリプトを実行するには、
変数指定でドルマークをつけるんですね。
今回は引数にするファイルは一つきりでしたが、
file1=$1 file2=$2 のように。
スクリプトコマンドの後ろに引数を並べる
順番と合わせるようです。どういうときに
役に立つのか、想像できないですが、
データ解析などの自動化効率アップですかね。


posted by ブログ開設者 at 06:33| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする