Python

[selenium]chromedriverを使って指定URLのタイトルを取得する



ダウンロード - selenium.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004# chromedriverを使ってURLのタイトルを取得する
005(*
006事前準備
0071:ChromeDriverの取得
0082:Google Chrome for Testing.appの取得
009https://quicktimer.cocolog-nifty.com/icefloe/2024/11/post-4a5ddb.html
0103:seleniumセットアップ
011同封の『setupPy.applescript』の実行
0124:ChromeDriverの使用の許可
013実行時にアプリケーションの実行許可が必要になる場合がある
014この場合はシステム設定のセキュリティとプライバシーで許可を与える必要がある
015これには管理者権限が必要
0165:Google Chrome for Testing.appの拡張属性の削除
017https://quicktimer.cocolog-nifty.com/icefloe/2024/11/post-98ec7b.html
018*)
019
020----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
021use AppleScript version "2.8"
022use framework "Foundation"
023use framework "UniformTypeIdentifiers"
024use framework "AppKit"
025use scripting additions
026property refMe : a reference to current application
027
028set strGetTitleURL to ("https://news.yahoo.co.jp/") as text
029
030#設定項目chromedriverまでのパス
031set strChromeDriverPath to ("~/bin/chromedriver/chromedriver") as text
032set ocidChromeDriverPathStr to refMe's NSString's stringWithString:(strChromeDriverPath)
033set ocidChromeDriverPath to ocidChromeDriverPathStr's stringByStandardizingPath()
034set ocidChromeDriverPathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidChromeDriverPath) isDirectory:(false)
035set ocidChromeDriverDirPathURL to ocidChromeDriverPathURL's URLByDeletingLastPathComponent()
036set strChromeDriverPath to ocidChromeDriverPath as text
037
038#pyまでのパス
039set aliasPathToMe to (path to me) as alias
040set strPathToMe to (POSIX path of aliasPathToMe) as text
041set ocidPathToMeStr to refMe's NSString's stringWithString:(strPathToMe)
042set ocidPathToMe to ocidPathToMeStr's stringByStandardizingPath()
043set ocidPathToMeURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidPathToMe) isDirectory:(false)
044set ocidContainerDirPathURL to ocidPathToMeURL's URLByDeletingLastPathComponent()
045set ocidBinDirURL to ocidContainerDirPathURL's URLByAppendingPathComponent:("bin") isDirectory:(true)
046set ocidPyFilePathURL to ocidBinDirURL's URLByAppendingPathComponent:("getTitlePy.py") isDirectory:(false)
047set strPyFilePath to ocidPyFilePathURL's |path| as text
048#
049################## 
050#コマンド実行
051set ocidTermTask to refMe's NSTask's alloc()'s init()
052ocidTermTask's setLaunchPath:("/usr/bin/python3")
053set ocidArgumentsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
054ocidArgumentsArray's addObject:(strPyFilePath)
055ocidArgumentsArray's addObject:(strGetTitleURL)
056ocidArgumentsArray's addObject:(strChromeDriverPath)
057ocidTermTask's setArguments:(ocidArgumentsArray)
058set ocidOutPut to refMe's NSPipe's pipe()
059set ocidError to refMe's NSPipe's pipe()
060ocidTermTask's setStandardOutput:(ocidOutPut)
061ocidTermTask's setStandardError:(ocidError)
062ocidTermTask's setCurrentDirectoryURL:(ocidChromeDriverDirPathURL)
063set listDoneReturn to ocidTermTask's launchAndReturnError:(reference)
064if (item 1 of listDoneReturn) is (false) then
065  log "エラーコード:" & (item 2 of listDoneReturn)'s code() as text
066  log "エラードメイン:" & (item 2 of listDoneReturn)'s domain() as text
067  log "Description:" & (item 2 of listDoneReturn)'s localizedDescription() as text
068  log "FailureReason:" & (item 2 of listDoneReturn)'s localizedFailureReason() as text
069end if
070##################
071#終了待ち
072ocidTermTask's waitUntilExit()
073
074##################
075#標準出力をログに
076set ocidOutPutData to ocidOutPut's fileHandleForReading()
077set listResponse to ocidOutPutData's readDataToEndOfFileAndReturnError:(reference)
078set ocidStdOut to (item 1 of listResponse)
079set ocidStdOut to refMe's NSString's alloc()'s initWithData:(ocidStdOut) encoding:(refMe's NSUTF8StringEncoding)
080set ocidStdOut to (ocidStdOut's stringByReplacingOccurrencesOfString:("\n") withString:(""))
081set ocidStdOut to (ocidStdOut's stringByReplacingOccurrencesOfString:("\r") withString:(""))
082set ocidStdOut to (ocidStdOut's stringByReplacingOccurrencesOfString:("Page Title: ") withString:(""))
083log ocidStdOut as text
084return ocidStdOut as text
AppleScriptで生成しました

|

[pymupdf]画像にリンクをつけるQR用



ダウンロード - img2addlink.zip



複数画像があるPDFの場合
全部の画像にリンクが付くので
あくまでも、サンプルで


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/usr/bin/env python3
002# coding: utf-8
003#
004import sys
005import os
006import pymupdf
007
008# 入力ファイル受け取り
009argFilePath = sys.argv
010pdf_file_path = str(argFilePath[1])
011#テスト用
012# pdf_file_path = "/Users/SOMESOME/Desktop/SOMESOME.pdf"
013
014#str_link_text = "https://quicktimer.cocolog-nifty.com/icefloe/"
015str_link_text = str(argFilePath[2])
016
017#パスからベースファイル名とコンテナを取得
018container_directory = os.path.dirname(pdf_file_path)
019file_name = os.path.basename(pdf_file_path)
020base_file_name = os.path.splitext(file_name)[0]
021
022#注釈入れたPDFの保存先
023pdf_save_file_path = container_directory + "/" + base_file_name + ".LINK.pdf"
024# PDFドキュメントを開く
025pdf_document = pymupdf.open(pdf_file_path)
026#PDFページを順に処理
027for page_number in range(len(pdf_document)):
028  #PDFページを開いて
029  pdf_page = pdf_document.load_page(page_number)
030  #
031  list_image_object = pdf_page.get_images()
032  for item_image in list_image_object:
033    xref = item_image[0]
034    print(f"xref: {xref}")
035    list_image_rects = pdf_page.get_image_rects(xref)[0]
036    print(f"RECT: {list_image_rects}")
037    pdf_page.insert_link(
038      {'kind': 2, 'from': list_image_rects, 'uri': str_link_text})
039
040
041# 全ページ終わったら注釈の入ったPDFを別名保存する
042pdf_document.save(pdf_save_file_path)
043# 開いていたPDFを閉じて
044pdf_document.close()
045# 処理終了
046sys.exit(0)
047
048
049
AppleScriptで生成しました

|

[Python] macOSでPython利用時の基本セットアップ(ユーザー環境)

前提事項
原則管理者権限が必要
ターミナルの利用が可能
この2点が必要になります
現在の環境の確認
サンプルコード

サンプルソース(参考)
行番号ソース
001/usr/bin/which python3
AppleScriptで生成しました

戻り値は
一般的には
/usr/bin/python3ですが
CommandLineToolsでインストールした場合は
/Library/Developer/CommandLineTools/usr/bin/python3.9
Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/bin/python3.9
Xcodeの場合
/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/bin/Python3
等のパスが戻る場合があります

1:Python3のインストール
どれでも可能な方法1つでインストールできればOK
1−1:Xcodeを利用する(AppleDevからダウンロード)
1−2:AppStoreからXcodeをインストール
1−3:CommandLineToolsを利用する
1−4:自分でMakeする(ユーザー環境で可能)
1−5:Homebrew等を利用する

2:ライブラリの導入
2−1:ローカル環境にインストールする
2−2:ユーザー環境にインストールする
2−2−1:ライブラリ:インストール
2−2−2:ライブラリ:アップデート

1:Python3のインストール
1−1:Xcodeを利用する(AppleDevからダウンロード)
https://developer.apple.com/download/all/?q=Xcode

1−2:AppStoreからXcodeをインストール
https://apps.apple.com/jp/app/xcode/id497799835?mt=12

1−3:CommandLineToolsを利用する
1−3−1:AppleDevからダウンロード
https://developer.apple.com/download/all/?q=Command%20Line%20Tools

1−3−2:コマンドラインからインストール
サンプルコード

サンプルソース(参考)
行番号ソース
001/usr/bin/xcode-select --install
AppleScriptで生成しました
1−4:自分でMakeする(ユーザー環境で可能)
https://www.python.org/

1−5:Homebrew等を利用する
https://docs.brew.sh/Homebrew-and-Python


2:ライブラリの導入
2−1:ローカル環境にインストールする
2−1−1:通常Xcode等の利用時
/Library/Frameworks/Python.framework/Versions/3.x/lib/python3.x/site-packages

pip実行時にsudo必要な場合があります

2−1−2:Homebrew利用時
/usr/local/lib/python3.x/site-packages  や 
/opt/homebrew/lib/python3.x/site-packages に展開されます

2−2:ユーザー環境にインストールする
/Users/ユーザー名/Library/Python/3.x/lib/python/site-packages


私の環境は
CommandLineTools+ライブラリはユーザー環境
です

ユーザードメインへのライブラリのインストール先
サンプルコード

サンプルソース(参考)
行番号ソース
001/usr/bin/python3 -m site --user-site
AppleScriptで生成しました

2−2−1:ライブラリ:インストール
例 fitz pymupdf
サンプルコード

サンプルソース(参考)
行番号ソース
001/usr/bin/python3 -m pip install --user fitz
002/usr/bin/python3 -m pip install --user pymupdf
AppleScriptで生成しました

2−2−2:ライブラリ:アップデート
例 fitz pymupdf
サンプルコード

サンプルソース(参考)
行番号ソース
001/usr/bin/python3 -m pip install --upgrade --user fitz
002/usr/bin/python3 -m pip install --upgrade --user pymupdf
AppleScriptで生成しました

|

PDFで使用されているフォントをページ毎に調べてテキスト出力する

20240830011522_831x536
[python3]PDFに埋め込まれているフォント名を一覧取得する
https://quicktimer.cocolog-nifty.com/icefloe/2024/05/post-876d77.html

改良版



ダウンロード - pdfembeddedfontnamev2.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# ファイルをpyファイルに渡すだけの補助スクリプト
005#
006#com.cocolog-nifty.quicktimer.icefloe
007----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
008use AppleScript version "2.8"
009use framework "Foundation"
010use scripting additions
011
012property refMe : a reference to current application
013
014####スクリプトメニューから実行したら
015tell current application
016  set strName to name as text
017end tell
018if strName is "osascript" then
019  tell application "Finder"
020    activate
021  end tell
022else
023  tell current application
024    activate
025  end tell
026end if
027####UTIリスト PDFのみ
028set listUTI to {"com.adobe.pdf"}
029set aliasDefaultLocation to (path to desktop folder from user domain) as alias
030####ダイアログを出す
031set aliasFilePath to (choose file with prompt "PDFファイルを選んでください" default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
032####PDFのパス
033set strFilePath to POSIX path of aliasFilePath
034set ocidFilePathStr to (refMe's NSString's stringWithString:strFilePath)
035set ocidFilePath to ocidFilePathStr's stringByStandardizingPath
036set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidFilePath isDirectory:false)
037set strFilePath to (ocidFilePathURL's |path|()) as text
038
039###ディレクトリ 起動時に削除されます
040set appFileManager to refMe's NSFileManager's defaultManager()
041set ocidTempDirURL to appFileManager's temporaryDirectory()
042set ocidUUID to refMe's NSUUID's alloc()'s init()
043set ocidUUIDString to ocidUUID's UUIDString
044set ocidSaveDirPathURL to ocidTempDirURL's URLByAppendingPathComponent:(ocidUUIDString) isDirectory:(true)
045#フォルダ生成
046set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
047# アクセス権777
048ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions)
049set listBoolMakeDir to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:(true) attributes:(ocidAttrDict) |error| :(reference)
050#パス
051set strFileName to ("doGetFontName.py") as text
052set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strFileName) isDirectory:(false)
053set ocidPythonBinPath to (ocidSaveFilePathURL's |path|())
054set strPythonBinPath to (ocidPythonBinPath) as text
055#使用するスクリプト
056set strPyScript to ("#!/usr/bin/env python3\n# coding: utf-8\nimport sys\nimport os\nimport tempfile\nimport uuid\nimport subprocess\nimport fitz\nargGetData = sys.argv\npdf_file_path = str(argGetData[1])\nfile_name = os.path.basename(pdf_file_path)\nlist_fontname = set()\nstr_output_string = \"\"\nstr_output_string += f\"ファイルパス: {pdf_file_path}\\n\"\nstr_output_string += f\"ファイル名: {file_name}\\n\"\nopen_doc = fitz.open(pdf_file_path)\nfor num_page in range(len(open_doc)):\n    str_output_string += \"----------------------\\n\"\n    str_output_string += f\"ページ: {num_page + 1}\\n\"\n    read_page = open_doc.load_page(num_page)\n    list_fonts = read_page.get_fonts()\n    for item_font in list_fonts:\n        str_font_name = item_font[3].split(\"+\")[-1]\n        str_output_string += f\"{str_font_name}\\n\"\n        list_fontname.add(str_font_name)\nsorted_list_fontname = sorted(list_fontname)\nstr_add_fontList = \"\\n\".join(map(str, sorted_list_fontname))\nprint(str_add_fontList)\nstr_save_string = (str_add_fontList + \"\\n----------------------\\n\" + str_output_string)\ntemp_dir = tempfile.gettempdir()\nstr_dir_name = str(uuid.uuid4())\ntemp_dir_path = os.path.join(temp_dir, str_dir_name)\nos.makedirs(temp_dir_path, exist_ok=True)\nstr_save_file_name = file_name + \".txt\"\nsave_file_path = os.path.join(temp_dir_path, str_save_file_name)\nwith open(save_file_path, 'w', encoding='utf-8') as temp_file:\n    temp_file.write(str_save_string)\nsubprocess.run([\"open\", save_file_path])\nsys.exit(0)\n") as text
057set ocidPyScript to refMe's NSString's stringWithString:(strPyScript)
058#保存
059set listDone to ocidPyScript's writeToURL:(ocidSaveFilePathURL) atomically:(true) encoding:(refMe's NSUTF8StringEncoding) |error| :(reference)
060if (item 1 of listDone) is true then
061  log "保存 正常処理"
062else if (item 2 of listDone) ≠ (missing value) then
063  log (item 2 of listDone)'s code() as text
064  log (item 2 of listDone)'s localizedDescription() as text
065  return "保存 エラーしました"
066end if
067#アクセス権 755
068ocidAttrDict's setValue:(493) forKey:(refMe's NSFilePosixPermissions)
069set listDone to appFileManager's setAttributes:(ocidAttrDict) ofItemAtPath:(ocidPythonBinPath) |error| :(reference)
070if (item 1 of listDone) is true then
071  log "アクセス権 正常処理"
072else if (item 2 of listDone) ≠ (missing value) then
073  log (item 2 of listDone)'s code() as text
074  log (item 2 of listDone)'s localizedDescription() as text
075  return "アクセス権 エラーしました"
076end if
077################################
078#python3のパスチェック
079try
080  set strCmdText to ("/usr/bin/which python3") as text
081  set strBinPath to (do shell script strCmdText) as text
082on error
083  log "セットアップを実行してください"
084  try
085    do shell script "/usr/bin/xcode-select --install"
086  end try
087  return "python3が見つかりませんでした終了します"
088end try
089
090####添付する場合binディレクトリ内を参照する場合
091(*
092set strBinFileName to ("doGetFontName.py") as text
093tell application "Finder"
094  set aliasPathToMe to (path to me) as alias
095end tell
096#パス
097set strPathToMe to (POSIX path of aliasPathToMe) as text
098set strPathToMeStr to refMe's NSString's stringWithString:(strPathToMe)
099set ocidPathToMe to strPathToMeStr's stringByStandardizingPath()
100set ocidPathToMeURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidPathToMe) isDirectory:false)
101set ocidContainerDirURL to ocidPathToMeURL's URLByDeletingLastPathComponent()
102set ocidBinDirPathURL to ocidContainerDirURL's URLByAppendingPathComponent:("bin") isDirectory:true
103set ocidBinFilePathURL to ocidBinDirPathURL's URLByAppendingPathComponent:(strBinFileName)
104set strPythonBinPath to ocidBinFilePathURL's |path| as text
105*)
106try
107  set strCommandText to ("\"" & strPythonBinPath & "\" \"" & strFilePath & "\"") as text
108  ##  set strCommandText to ("\"" & strPythonBinPath & "\"") as text
109  set strResponse to (do shell script strCommandText) as text
110on error
111  return "コマンドでエラーしました"
112end try
113#戻り値をテキストにして
114set ocidResponse to refMe's NSString's stringWithString:(strResponse)
115#Arrayに
116set ocidFontNameArray to ocidResponse's componentsSeparatedByString:("\t")
117#ソートして
118set ocidSortedArray to ocidFontNameArray's sortedArrayUsingSelector:("localizedStandardCompare:")
119#改行テキストにする
120set ocidOutPutString to ocidSortedArray's componentsJoinedByString:("\n")
121
122##############################
123#####ダイアログ
124##############################
125tell current application
126  set strName to name as text
127end tell
128####スクリプトメニューから実行したら
129if strName is "osascript" then
130  tell application "Finder"
131    activate
132  end tell
133else
134  tell current application
135    activate
136  end tell
137end if
138set strMes to ("埋め込みフォント名です") as text
139set aliasIconPath to (POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ProfileFont.icns") as alias
140try
141  set recordResult to (display dialog strMes with title "戻り値です" default answer (ocidOutPutString as text) buttons {"クリップボードにコピー", "終了", "再実行"} default button "再実行" cancel button "終了" giving up after 20 with icon aliasIconPath without hidden answer) as record
142on error
143  return "エラーしました"
144end try
145if (gave up of recordResult) is true then
146  return "時間切れです"
147end if
148##############################
149#####自分自身を再実行
150##############################
151if button returned of recordResult is "再実行" then
152  tell application "Finder"
153    set aliasPathToMe to (path to me) as alias
154  end tell
155  run script aliasPathToMe with parameters "再実行"
156end if
157##############################
158#####値のコピー
159##############################
160if button returned of recordResult is "クリップボードにコピー" then
161  try
162    set strText to text returned of recordResult as text
163    ####ペーストボード宣言
164    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
165    set ocidText to (refMe's NSString's stringWithString:(strText))
166    appPasteboard's clearContents()
167    appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
168  on error
169    tell application "Finder"
170      set the clipboard to strText as text
171    end tell
172  end try
173end if
174
175
176return 0
AppleScriptで生成しました

サンプルコード

サンプルソース(参考)
行番号ソース
001#!/usr/bin/env python3
002# coding: utf-8
003import sys
004import os
005import tempfile
006import uuid
007import subprocess
008
009import fitz
010argGetData = sys.argv
011pdf_file_path = str(argGetData[1])
012# テスト用
013# pdf_file_path = "/Library/Documentation/License.lpdf/Contents/Resources/Japanese.lproj/License.pdf"
014# ファイル名を取得
015file_name = os.path.basename(pdf_file_path)
016#出力用のリスト
017list_fontname = set()
018#出力用のテキスト
019str_output_string = ""
020str_output_string += f"ファイルパス: {pdf_file_path}\n"
021str_output_string += f"ファイル名: {file_name}\n"
022
023# PDFを読み込み
024open_doc = fitz.open(pdf_file_path)
025#ページを順番に処理
026for num_page in range(len(open_doc)):
027    #出力テキスト
028    str_output_string += "----------------------\n"
029    str_output_string += f"ページ: {num_page + 1}\n"
030    #PDFページ要素を読み込み
031    read_page = open_doc.load_page(num_page)
032    #フォント要素を読み出し
033    list_fonts = read_page.get_fonts()
034    #読み出したフォント数だけ繰り返す
035    for item_font in list_fonts:
036        #整形して
037        str_font_name = item_font[3].split("+")[-1]
038        #出力用テキストに追加
039        str_output_string += f"{str_font_name}\n"
040        #出力用のリストに追加
041        list_fontname.add(str_font_name)
042#出力用のリストをソートしてページ順に
043sorted_list_fontname = sorted(list_fontname)
044#リスト毎に改行を入れてテキストにする
045str_add_fontList = "\n".join(map(str, sorted_list_fontname))
046#戻り値用のテキスト
047print(str_add_fontList)
048#テキスト化したリストを出力用のテキストに追加
049str_save_string = (str_add_fontList + "\n----------------------\n" + str_output_string)
050#保存先はテンポラリ再起動時に自動削除
051temp_dir = tempfile.gettempdir()
052#UUIDをフォルダ名にしてユニークにしておく
053str_dir_name = str(uuid.uuid4())
054#保存先ディレクトリをパスに
055temp_dir_path = os.path.join(temp_dir, str_dir_name)
056#フォルダ生成
057os.makedirs(temp_dir_path, exist_ok=True)
058#保存ファイル名 ファイル名+テキスト拡張子
059str_save_file_name = file_name + ".txt"
060#保存先テキストのパス
061save_file_path = os.path.join(temp_dir_path, str_save_file_name)
062#保存
063with open(save_file_path, 'w', encoding='utf-8') as temp_file:
064    temp_file.write(str_save_string)
065#デフォルトアプリで開く
066subprocess.run(["open", save_file_path])
067#終了
068sys.exit(0)
AppleScriptで生成しました

|

[python]画像データを非圧縮でPDF化する


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# 要Xcode
005# python3でPDFを生成する
006#  com.cocolog-nifty.quicktimer.icefloe
007----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
008use AppleScript version "2.8"
009use framework "Foundation"
010use scripting additions
011
012property refMe : a reference to current application
013################################
014#設定項目 trueでモジュールインストール
015set boolChkModule to false as boolean
016
017
018################################
019#ダイアログ 入力ファイル
020set strName to (name of current application) as text
021if strName is "osascript" then
022  tell application "Finder" to activate
023else
024  tell current application to activate
025end if
026set appFileManager to refMe's NSFileManager's defaultManager()
027set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
028set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
029set aliasDesktopDirPath to (ocidDesktopDirPathURL's absoluteURL()) as alias
030set listUTI to {"public.image"}
031set strMes to ("ファイルを選んでください") as text
032set strPrompt to ("ファイルを選んでください") as text
033try
034  ### ファイル選択時
035  set aliasFilePath to (choose file strMes with prompt strPrompt default location (aliasDesktopDirPath) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
036on error
037  log "エラーしました"
038  return "エラーしました"
039end try
040################################
041#入力パス
042set strFilePath to (POSIX path of aliasFilePath) as text
043set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
044set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
045set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
046#
047set ocidContainerDirPathURL to ocidFilePathURL's URLByDeletingLastPathComponent()
048set aliasContainerDirPath to (ocidContainerDirPathURL's absoluteURL()) as alias
049
050################################
051#出力パス
052set strTargetExtension to ("pdf") as text
053set ocidBaseFilePathURL to ocidFilePathURL's URLByDeletingPathExtension()
054set strBaseFileName to (ocidBaseFilePathURL's lastPathComponent()) as text
055set strDefaultFileName to (strBaseFileName & "." & strTargetExtension) as text
056
057#出力ファイル ダイアログ
058set strName to (name of current application) as text
059if strName is "osascript" then
060  tell application "Finder" to activate
061else
062  tell current application to activate
063end if
064
065set strPromptText to "名前を決めてください" as text
066set strMesText to "名前を決めてください" as text
067#ファイル名 ダイアログ
068set aliasSaveFilePath to (choose file name strMesText default location aliasContainerDirPath default name strDefaultFileName with prompt strPromptText) as «class furl»
069
070################################
071#出力ファイルパス
072set strSaveFilePath to (POSIX path of aliasSaveFilePath) as text
073set ocidSaveFilePathStr to refMe's NSString's stringWithString:(strSaveFilePath)
074set ocidSaveFilePath to ocidSaveFilePathStr's stringByStandardizingPath()
075set ocidSaveFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidSaveFilePath) isDirectory:false)
076#拡張子
077set strSaveExtension to (ocidSaveFilePathURL's pathExtension()) as text
078#最後のアイテムがファイル名
079set strSaveFileName to (ocidSaveFilePathURL's lastPathComponent()) as text
080#拡張子のつけ忘れ対策
081if strSaveFileName does not contain strTargetExtension then
082  set strSaveFileName to (strSaveFileName & "." & strTargetExtension) as text
083  set ocidSaveFilePathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:(strSaveFileName)
084end if
085
086###################################
087#python3のパスチェック
088try
089  set strCommandText to ("/usr/bin/which python3") as text
090  log strCommandText
091  set strBinPath to (do shell script strCommandText) as text
092on error
093  return "python3が見つかりませんでした終了します"
094end try
095
096
097###################################
098#Pillowパッケージインストールチェック
099if boolChkModule is true then
100  try
101    set strCommandText to ("\"" & strBinPath & "\" -m pip show Pillow") as text
102    log strCommandText
103    set strResponst to (do shell script strCommandText) as text
104  on error
105    set strResponst to "WARNING" as text
106  end try
107  #
108  if strResponst contains "WARNING" then
109    set strCommandText to ("\"" & strBinPath & "\" -m pip install --user Pillow") as text
110    log strCommandText
111    do shell script strCommandText
112  else
113    set strCommandText to ("\"" & strBinPath & "\" -m pip install --upgrade --user Pillow") as text
114    log strCommandText
115    do shell script strCommandText
116  end if
117end if
118
119###################################
120#python3
121#入出力ファイルパス
122set strFilePath to (ocidFilePathURL's |path|()) as text
123set strSaveFilePath to (ocidSaveFilePathURL's |path|()) as text
124#
125set strCommandText to ("\"" & strBinPath & "\" -c \"from PIL import Image; Image.open('" & strFilePath & "').save('" & strSaveFilePath & "', save_all=True)\"") as text
126log strCommandText
127try
128  do shell script strCommandText
129on error
130  return "コマンドでエラーしました"
131end try
132
133
134return
135
AppleScriptで生成しました

|

[cv2]画像をグレースケールに変換します

ダウンロード - img2gs.zip


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004#
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012set appFileManager to refMe's NSFileManager's defaultManager()
013
014##############################
015#pyファイル名
016set strPythonFileName to ("makegs.py") as text
017#Binフォルダ
018set aliasPathToMe to (path to me) as alias
019tell application "Finder"
020  set aliasContainerDirPath to (container of aliasPathToMe) as alias
021  set aliasBinDirPath to (folder "bin" of folder aliasContainerDirPath) as alias
022  set aliasPyFilePath to (file strPythonFileName of folder aliasBinDirPath) as alias
023end tell
024#pyへのファイルパス
025set strPyFilePath to (POSIX path of aliasPyFilePath) as text
026
027
028##############################
029#ダイアログ 対象のファイルを選ぶ
030set strName to (name of current application) as text
031if strName is "osascript" then
032  tell application "Finder" to activate
033else
034  tell current application to activate
035end if
036#デフォルトロケーション
037set appFileManager to refMe's NSFileManager's defaultManager()
038set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
039set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
040set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
041#UTIリスト
042set listUTI to {"public.image"}
043set strMes to ("画像ファイルを選んでください") as text
044set strPrompt to ("画像ファイルを選んでください") as text
045try
046  ### ファイル選択時
047  set listAliasFilePath to (choose file strMes with prompt strPrompt default location aliasDefaultLocation of type listUTI with invisibles, multiple selections allowed and showing package contents) as list
048on error
049  log "エラーしました"
050  return "エラーしました"
051end try
052if listAliasFilePath is {} then
053  return "選んでください"
054end if
055##############################
056#書き出し先指定
057set strName to (name of current application) as text
058if strName is "osascript" then
059  tell application "Finder" to activate
060else
061  tell current application to activate
062end if
063set aliasFirstFilePath to (item 1 of listAliasFilePath) as alias
064tell application "Finder"
065  set aliasDefaultLocation to (container of aliasFirstFilePath) as alias
066end tell
067set strMes to "保存先フォルダを選んでください" as text
068set strPrompt to "保存先フォルダを選択してください" as text
069try
070  set aliasResponse to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
071on error
072  log "エラーしました"
073  return "エラーしました"
074end try
075##############################
076#上書きキャンセル
077set aliasFirstFilePath to (item 1 of listAliasFilePath) as alias
078tell application "Finder"
079  set aliasContainerDirPath to (container of aliasFirstFilePath) as alias
080  if aliasResponse is aliasContainerDirPath then
081    set strDialogText to "保存先は別を選んでください" as text
082    set strTitleText to "上書きになるのでキャンセルします" as text
083    display alert strTitleText message strDialogText as informational giving up after 3
084    return "上書きになるのでキャンセルします"
085  end if
086end tell
087
088#パス関連
089set strSaveDirPath to (POSIX path of aliasResponse) as text
090set ocidSaveDirPathStr to refMe's NSString's stringWithString:(strSaveDirPath)
091set ocidSaveDirPath to ocidSaveDirPathStr's stringByStandardizingPath()
092set ocidSaveDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidSaveDirPath) isDirectory:(true))
093
094##############################
095# ファイルの数だけ繰り返し
096repeat with itemAliasFilePath in listAliasFilePath
097  #パス関連
098  set aliasFilePath to itemAliasFilePath as alias
099  set strFilePath to (POSIX path of aliasFilePath) as text
100  set ocidFilePathStr to (refMe's NSString's stringWithString:(strFilePath))
101  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
102  set strFilePath to ocidFilePath as text
103  set ocidFileName to ocidFilePath's lastPathComponent()
104  #
105  set ocidSaveFilePathURL to (ocidSaveDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false))
106  set strSaveFilePath to (ocidSaveFilePathURL's |path|()) as text
107  set strCommandText to ("\"" & strPyFilePath & "\" \"" & strFilePath & "\" \"" & strSaveFilePath & "\"") as text
108  log strCommandText
109  try
110    do shell script strCommandText
111  end try
112  
113end repeat
114
115set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
116set boolDone to appSharedWorkspace's openURL:(ocidSaveDirPathURL)
117
118if (boolDone) is true then
119  return "openURL 正常処理"
120else if (boolDone) is false then
121  return "openURL エラーしました"
122end if
123
124
125
126return
127
128
AppleScriptで生成しました

|

[cv2]画像を白黒にする(128階調目で白黒)

ダウンロード - img2bw.zip


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004#
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012set appFileManager to refMe's NSFileManager's defaultManager()
013
014##############################
015#pyファイル名
016set strPythonFileName to ("make1bit.py") as text
017#Binフォルダ
018set aliasPathToMe to (path to me) as alias
019tell application "Finder"
020  set aliasContainerDirPath to (container of aliasPathToMe) as alias
021  set aliasBinDirPath to (folder "bin" of folder aliasContainerDirPath) as alias
022  set aliasPyFilePath to (file strPythonFileName of folder aliasBinDirPath) as alias
023end tell
024#pyへのファイルパス
025set strPyFilePath to (POSIX path of aliasPyFilePath) as text
026
027
028##############################
029#ダイアログ 対象のファイルを選ぶ
030set strName to (name of current application) as text
031if strName is "osascript" then
032  tell application "Finder" to activate
033else
034  tell current application to activate
035end if
036#デフォルトロケーション
037set appFileManager to refMe's NSFileManager's defaultManager()
038set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
039set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
040set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
041#UTIリスト
042set listUTI to {"public.image"}
043set strMes to ("画像ファイルを選んでください") as text
044set strPrompt to ("画像ファイルを選んでください") as text
045try
046  ### ファイル選択時
047  set listAliasFilePath to (choose file strMes with prompt strPrompt default location aliasDefaultLocation of type listUTI with invisibles, multiple selections allowed and showing package contents) as list
048on error
049  log "エラーしました"
050  return "エラーしました"
051end try
052if listAliasFilePath is {} then
053  return "選んでください"
054end if
055##############################
056#書き出し先指定
057set strName to (name of current application) as text
058if strName is "osascript" then
059  tell application "Finder" to activate
060else
061  tell current application to activate
062end if
063set aliasFirstFilePath to (item 1 of listAliasFilePath) as alias
064tell application "Finder"
065  set aliasDefaultLocation to (container of aliasFirstFilePath) as alias
066end tell
067set strMes to "保存先フォルダを選んでください" as text
068set strPrompt to "保存先フォルダを選択してください" as text
069try
070  set aliasResponse to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
071on error
072  log "エラーしました"
073  return "エラーしました"
074end try
075#パス関連
076set strSaveDirPath to (POSIX path of aliasResponse) as text
077set ocidSaveDirPathStr to refMe's NSString's stringWithString:(strSaveDirPath)
078set ocidSaveDirPath to ocidSaveDirPathStr's stringByStandardizingPath()
079set ocidSaveDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidSaveDirPath) isDirectory:(true))
080
081##############################
082# ファイルの数だけ繰り返し
083repeat with itemAliasFilePath in listAliasFilePath
084  #パス関連
085  set aliasFilePath to itemAliasFilePath as alias
086  set strFilePath to (POSIX path of aliasFilePath) as text
087  set ocidFilePathStr to (refMe's NSString's stringWithString:(strFilePath))
088  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
089  set strFilePath to ocidFilePath as text
090  set ocidBaseFilePath to ocidFilePath's stringByDeletingPathExtension()
091  set ocidFileName to ocidBaseFilePath's lastPathComponent()
092  #
093  set ocidSaveBaseFilePathURL to (ocidSaveDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false))
094  set ocidSaveFilePathURL to (ocidSaveBaseFilePathURL's URLByAppendingPathExtension:("tif"))
095  set strSaveFilePath to (ocidSaveFilePathURL's |path|()) as text
096  set strCommandText to ("\"" & strPyFilePath & "\" \"" & strFilePath & "\" \"" & strSaveFilePath & "\"") as text
097  log strCommandText
098  try
099    do shell script strCommandText
100  end try
101  
102end repeat
103
104set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
105set boolDone to appSharedWorkspace's openURL:(ocidSaveDirPathURL)
106
107if (boolDone) is true then
108  return "openURL 正常処理"
109else if (boolDone) is false then
110  return "openURL エラーしました"
111end if
112
113
114
115return
116
117
AppleScriptで生成しました

|

[python3 pip]モジュールインストール(修正 )


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#なんでか?処理が終わり前にウィンドウ閉じようとするので
004#少しディレイを長めにした
005#com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.6"
008use framework "Foundation"
009use framework "AppKit"
010use scripting additions
011
012property refMe : a reference to current application
013
014##########################
015# 設定項目
016# Installするパッケージをリストで
017##########################
018set listPackage to {"pip", "fontTools", "fontbakery", "gftools", "fontmake"} as list
019
020##########################
021try
022  do shell script "/usr/bin/xcode-select --install"
023end try
024log "モジュールインストールの確認中"
025
026##########################
027###python3のパスチェック
028try
029  set strCmdText to ("/usr/bin/which python3") as text
030  set strBinPath to (do shell script strCmdText) as text
031on error
032  return "python3が見つかりませんでした終了します"
033end try
034
035##########################
036#ユーザーのサイトパッケージインストール先
037set appFileManager to refMe's NSFileManager's defaultManager()
038set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSUserDomainMask))
039set ocidLibraryDirPathURL to ocidURLsArray's firstObject()
040set ocidSiteDirPathURL to ocidLibraryDirPathURL's URLByAppendingPathComponent:("Python/3.9/lib/python/site-packages") isDirectory:(true)
041
042#####################################
043#未インストールの場合のみインストール処理
044repeat with itemPackage in listPackage
045  set ocidPackDirPathURL to (ocidSiteDirPathURL's URLByAppendingPathComponent:(itemPackage) isDirectory:(true))
046  set ocidPackDirPath to ocidPackDirPathURL's |path|()
047  set boolDirExists to (appFileManager's fileExistsAtPath:(ocidPackDirPath) isDirectory:(true))
048  if boolDirExists = true then
049    log "インストール済み"
050  else if boolDirExists = false then
051    
052    log itemPackage & "モジュールインストール開始"
053    #ターミナル起動させて
054    tell application "Terminal"
055      launch
056      activate
057      #リターンで改行を送る=新規Window
058      set objWindowID to (do script "\n\n")
059      delay 1
060      #コマンド実行
061      set strCommandText to ("\"" & strBinPath & "\"  -m pip install --user " & itemPackage & "") as text
062      log strCommandText
063      do script strCommandText in objWindowID
064    end tell
065    ##コマンドが終わるまで待つ
066    repeat
067      tell application "Terminal"
068        tell objWindowID
069          #コマンド実行中か問い合わせ
070          set boolBusy to busy as boolean
071        end tell
072      end tell
073      ##コマンド終わっていたら
074      if boolBusy is false then
075        ##リピートからぬける
076        exit repeat
077        ##実行中なら待つ
078      else
079        delay 0.5
080      end if
081    end repeat
082    ##コマンド終わったらなら
083    tell application "Terminal"
084      ##改行2回送って
085      do script "\n\n" in objWindowID
086      ##シェルからログアウト
087      do script "exit" in objWindowID
088      set theWid to get the id of window 1
089      #ログアウトを待って
090      delay 1
091      ##ウィンドウを閉じる
092      close front window saving no
093    end tell
094    log itemPackage & "モジュールインストール終了"
095  end if
096end repeat
097
098#####################################
099#アップデートは全部やる
100repeat with itemPackage in listPackage
101  log itemPackage & "モジュールアップデート開始"
102  tell application "Terminal"
103    launch
104    activate
105    set objWindowID to (do script "\n\n")
106    delay 1
107    set strCommandText to ("\"" & strBinPath & "\" -m pip install --upgrade --user " & itemPackage & "") as text
108    log strCommandText
109    do script strCommandText in objWindowID
110  end tell
111  repeat
112    tell application "Terminal"
113      tell objWindowID
114        set boolBusy to busy as boolean
115      end tell
116    end tell
117    if boolBusy is false then
118      exit repeat
119    else
120      delay 0.2
121    end if
122  end repeat
123  
124  tell application "Terminal"
125    do script "\n\n" in objWindowID
126    do script "exit" in objWindowID
127    set theWid to get the id of window 1
128    delay 1
129    close front window saving no
130  end tell
131  log itemPackage & "モジュールアップデート終了"
132end repeat
133return "インストール終了"
AppleScriptで生成しました

|

モジュールインストール(修正 リピート処理にした)


あくまでも参考にしてください

【スクリプトエディタで開く】 |

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.6"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013##########################
014# 設定項目
015# Install するパッケージをリストで
016##########################
017# set listPackage to {"fontTools", "PyMuPDF", "tesseract", "fitz"} as list
018# Fitzの最新版が入っているとどうもうまく動作しない
019set listPackage to {"fontTools", "pymupdf", "tesseract"} as list
020
021##########################
022try
023  do shell script "/usr/bin/xcode-select --install"
024end try
025log "モジュールインストールの確認中"
026
027##########################
028###python3のパスチェック
029try
030  set strCmdText to ("/usr/bin/which python3") as text
031  set strBinPath to (do shell script strCmdText) as text
032on error
033  return "python3が見つかりませんでした終了します"
034end try
035
036##########################
037#ユーザーのサイトパッケージインストール先
038set appFileManager to refMe's NSFileManager's defaultManager()
039set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSUserDomainMask))
040set ocidLibraryDirPathURL to ocidURLsArray's firstObject()
041set ocidSiteDirPathURL to ocidLibraryDirPathURL's URLByAppendingPathComponent:("Python/3.9/lib/python/site-packages") isDirectory:(true)
042
043#####################################
044#未インストールの場合のみインストール処理
045repeat with itemPackage in listPackage
046  set ocidPackDirPathURL to (ocidSiteDirPathURL's URLByAppendingPathComponent:(itemPackage) isDirectory:(true))
047  set ocidPackDirPath to ocidPackDirPathURL's |path|()
048  set boolDirExists to (appFileManager's fileExistsAtPath:(ocidPackDirPath) isDirectory:(true))
049  if boolDirExists = true then
050    log "インストール済み"
051  else if boolDirExists = false then
052    
053    log itemPackage & "モジュールインストール開始"
054    #ターミナル起動させて
055    tell application "Terminal"
056      launch
057      activate
058      #リターンで改行を送る=新規Window
059      set objWindowID to (do script "\n\n")
060      delay 1
061      #コマンド実行
062      do script "\"" & strBinPath & "\"  -m pip install --user " & itemPackage & "" in objWindowID
063    end tell
064    ##コマンドが終わるまで待つ
065    repeat
066      tell application "Terminal"
067        tell objWindowID
068          #コマンド実行中か問い合わせ
069          set boolBusy to busy as boolean
070        end tell
071      end tell
072      ##コマンド終わっていたら
073      if boolBusy is false then
074        ##リピートからぬける
075        exit repeat
076        ##実行中なら待つ
077      else
078        delay 0.2
079      end if
080    end repeat
081    ##コマンド終わったらなら
082    tell application "Terminal"
083      ##改行2回送って
084      do script "\n\n" in objWindowID
085      ##シェルからログアウト
086      do script "exit" in objWindowID
087      set theWid to get the id of window 1
088      #ログアウトを待って
089      delay 1
090      ##ウィンドウを閉じる
091      close front window saving no
092    end tell
093    log itemPackage & "モジュールインストール終了"
094  end if
095end repeat
096
097#####################################
098#アップデートは全部やる
099repeat with itemPackage in listPackage
100  log itemPackage & "モジュールアップデート開始"
101  tell application "Terminal"
102    launch
103    activate
104    set objWindowID to (do script "\n\n")
105    delay 1
106    do script "\"" & strBinPath & "\" -m pip install --upgrade --user " & itemPackage & "" in objWindowID
107  end tell
108  repeat
109    tell application "Terminal"
110      tell objWindowID
111        set boolBusy to busy as boolean
112      end tell
113    end tell
114    if boolBusy is false then
115      exit repeat
116    else
117      delay 0.2
118    end if
119  end repeat
120  
121  tell application "Terminal"
122    do script "\n\n" in objWindowID
123    do script "exit" in objWindowID
124    set theWid to get the id of window 1
125    delay 1
126    close front window saving no
127  end tell
128  log itemPackage & "モジュールアップデート終了"
129end repeat
130return "インストール終了"
AppleScriptで生成しました

|

モジュールインストール(修正)

ダウンロード - 20240503_120442.html

『待つ』処理を変更した
あくまでも参考にしてください

【スクリプトエディタで開く】 |

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use scripting additions
008
009try
010  do shell script "/usr/bin/xcode-select --install"
011end try
012
013log "モジュールインストールの確認中"
014
015#######################################################
016set strLibName to ("pip")
017log strLibName & "モジュールインストール開始"
018tell application "Terminal"
019  launch
020  activate
021  set objWindowID to (do script "\n\n")
022  delay 1
023  do script "python3  -m pip install --user " & strLibName & "" in objWindowID
024end tell
025repeat
026  tell application "Terminal"
027    tell objWindowID
028      set boolBusy to busy as boolean
029    end tell
030  end tell
031  if boolBusy is false then
032    exit repeat
033  else
034    delay 0.2
035  end if
036end repeat
037
038tell application "Terminal"
039  do script "\n\n" in objWindowID
040  do script "exit" in objWindowID
041  set theWid to get the id of window 1
042  delay 1
043  close front window saving no
044end tell
045log strLibName & "モジュールインストール終了"
046
047
048#######################################################
049
050set strLibName to ("pip")
051log strLibName & "モジュールアップデート開始"
052tell application "Terminal"
053  launch
054  activate
055  set objWindowID to (do script "\n\n")
056  delay 1
057  do script "python3  -m pip install --upgrade --user " & strLibName & "" in objWindowID
058end tell
059repeat
060  tell application "Terminal"
061    tell objWindowID
062      set boolBusy to busy as boolean
063    end tell
064  end tell
065  if boolBusy is false then
066    exit repeat
067  else
068    delay 0.2
069  end if
070end repeat
071
072tell application "Terminal"
073  do script "\n\n" in objWindowID
074  do script "exit" in objWindowID
075  set theWid to get the id of window 1
076  delay 1
077  close front window saving no
078end tell
079log strLibName & "モジュールアップデート終了"
080
081#######################################################
082set strLibName to ("opentypesvg")
083log strLibName & "モジュールインストール開始"
084tell application "Terminal"
085  launch
086  activate
087  set objWindowID to (do script "\n\n")
088  delay 1
089  do script "python3  -m pip install --user " & strLibName & "" in objWindowID
090end tell
091repeat
092  tell application "Terminal"
093    tell objWindowID
094      set boolBusy to busy as boolean
095    end tell
096  end tell
097  if boolBusy is false then
098    exit repeat
099  else
100    delay 0.2
101  end if
102end repeat
103
104tell application "Terminal"
105  do script "\n\n" in objWindowID
106  do script "exit" in objWindowID
107  set theWid to get the id of window 1
108  delay 1
109  close front window saving no
110end tell
111log strLibName & "モジュールインストール終了"
112
113
114#######################################################
115
116set strLibName to ("opentypesvg")
117log strLibName & "モジュールアップデート開始"
118tell application "Terminal"
119  launch
120  activate
121  set objWindowID to (do script "\n\n")
122  delay 1
123  do script "python3  -m pip install --upgrade --user " & strLibName & "" in objWindowID
124end tell
125repeat
126  tell application "Terminal"
127    tell objWindowID
128      set boolBusy to busy as boolean
129    end tell
130  end tell
131  if boolBusy is false then
132    exit repeat
133  else
134    delay 0.2
135  end if
136end repeat
137
138tell application "Terminal"
139  do script "\n\n" in objWindowID
140  do script "exit" in objWindowID
141  set theWid to get the id of window 1
142  delay 1
143  close front window saving no
144end tell
145log strLibName & "モジュールアップデート終了"
146#######################################################
147
148
149return "インストール終了"
AppleScriptで生成しました

|

より以前の記事一覧

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom