<Linux, awk> ファイルを逆順に表示、、
ファイルを列の方向で逆順に表示する。
ただし、ヘッダーheader
はそのままにする。
(head -1 hage.csv ; tail -n +2 hage.csv |tac)
か、
awk '{a[NR]=$0} END{print a[1]; for (i=NR; i>1; i--) print a[i]}' hage.csv
サンキュースタックさん。
stackoverflow.com
<Windows, Python, win32com> COMサーバの登録
win32com
を使って、Windowsのアプリケーションを操作する場合、
そもそも、対象となるアプリケーションが、レジストリregistry
に登録されてないと呼び出せない、、ことを知る。
win32com
から呼び出し可能か? は、makepy.py
で調べれる。
ここにリストされてると、呼び出し可能っぽい。
>cd /c/Anaconda3/Lib/site-packages/win32com/client >python makepy.py
18/09/14 修正。
上記ではうまくなかった。
レジストリに登録されていないと呼び出せないので、レジストリを検索してあるか? 調べるが正解っぽい。
regedit
でレジストリを起動して、HKEY_CLASSES_ROOT
にぶら下がっているアプリケーションが呼び出せるもの。
で、本題。
登録されてない場合、どうやって登録するのか?
Windowsアプリケーションの.dll
(ダイナミックリンクライブラリ形式)とか、.exe
(実行形式)は、
どうも、
ActiveXサーバとか、COMサーバとか呼ばれてるっぽい。
登録は、下記コマンドをコマンドプロンプトでたたく。
#.dllをレジストリに登録 c:\>regsvr32 c:\hage.dll #.dllをレジストリから削除 c:\>regsvr32 /u c:\hage.dll #.exeをレジストリに登録 c:\hage.exe /regserver #.exeをレジストリから削除 c:\hage.exe /unregserver
http://www5.plala.or.jp/softworld/topic_selfregistdll.htm
あと、Win7
だと、管理者権限で登録かけないといけんらしい。
その場合、適当にcom.bat
とかいうファイルを作成して、中を、
c:\hage.exe /regserver
としておいて、管理者権限でcom.bat
を回せばいい。
COM Interface を Windows vista/Windows 7 で実行するには?
長い道のりじゃ。。。
<dos> バッチファイル中で、ネットワークドライブへ移動
バッチファイルbat file
や、コマンドプロンプトcommand prompt
中で、ネットワークドライブNetwork drive
へ移動する。
cd
するとエラー起こす。
C\>cd \\hage\hage '\\hage\hage' CMD では UNC パスは現在のディレクトリとしてサポートされません。
pushd
するそうです。
C:\>pushd \\hage\hage
参考。
バッチファイル内のネットワークパス操作はpushd/popdを使おう
ちなみに、ネットワークドライブはnet use
で見れる。
C:\>net use 新しい接続は記憶されます。 ステータス ローカル名 リモート名 ネットワーク名 --------------------------------------------------------------- OK F: \\hage\hage Microsoft Windows Network
シェアしているディレクトリは、net share
で確認可。
C:\>net share 共有名 リソース 注釈 --------------------------------------------------------------- Hage C:\Users\hage\myworks
<dos> パスの設定
パスPATH
の設定。
set PATH=%PATH%;C:\HAGE\HAGE\HAGE
<selenium> Windowサイズを変更
selenium
でウインドサイズwindow size
を変更する技。
In [1]: from selenium import webdriver In [9]: from selenium.webdriver.chrome.options import Options In [10]: options = Options() In [11]: options.add_argument('--window-size=100,100') In [12]: d =webdriver.Chrome(chrome_options=options)
ちなみに、ヘッドレスheadless
にするには下記。
In [13]: options.add_argument('--headless')
スタックさん。
stackoverflow.com
<Python, PyAutoGui, Selenium> 認証ウインドを乗り越える、、
ブラウザBrowser
が出す認証ウインドAuthentication Required
を通過する技。
ググるとこのウインドは、ブラウザが出すもので、Selenium
で制御できないっぽい。
ということで、PyAutoGui
で対応したっす。
ブラウザを画面いっぱいにして、
真ん中に現れる認証ウインドをクリック、
そして、タブで入力箇所を移動して、
IDとパスを入れる。
その後は、Selenium
に制御を戻す。
from selenium import webdriver import pyautogui as pa d = webdriver.Firefox() d.maximize_window() url = 'hoge.hoge.com' w, h = pa.size() pa.moveTo(x=w / 2, y=h / 2, duration=0.0) #Open Browser d.get('') time.sleep(2) #Click Browser and Select URL entry pa.click(x=w / 2, y=h / 2, clicks=2, button="left") pa.press(keys="tab", presses=2) #Input URL and Return "Enter" key pa.typewrite(url, interval=0.0) pa.press(keys="enter", presses=1) time.sleep(2) #Select Authentication Required popup window and enter user_id/password pa.click(x=w / 2, y=h / 2, clicks=2, button="left") pa.press(keys="tab", presses=4) pa.typewrite('USER', interval=0.0) pa.press(keys="tab", presses=1) pa.typewrite('PASSWORD', interval=0.0) pa.press(keys="enter", presses=1) time.sleep(5) #Get Target Page object by Selenium url = 'http://hoge.hoge.com/hage/hagex/' d.get(url)
ぼちぼち動いた。
<PyAutoGUI, Python> オートメーション
オートメーションautomation
、、つまり、マウス、キーボードの自動操作。
PyAutoGUI
でできる。
インストールした。
>pip install python3-xlib >pip install pyautogui
マニュアル。
Welcome to PyAutoGUI’s documentation! — PyAutoGUI 1.0.0 documentation