Petua Pantas: Mengawal macOS dengan python
mata teras
- Menggunakan PYOBJC (Python ke Jambatan Objektif-C), Python dapat mengawal hampir semua aspek macOS, termasuk mengakses API sistem operasi, mengawal aplikasi berjalan dan tingkap operasi.
- Modul Appkit yang diakses melalui PYOBJC adalah alat yang berkuasa untuk mengawal macOS. Ia membolehkan Python menyenaraikan semua aplikasi yang sedang berjalan, mengaktifkan aplikasi tertentu dan melayari sifat setiap aplikasi.
- Interaksi dengan macOS menggunakan Python mungkin memerlukan beberapa penjelajahan dan pemahaman tentang konvensyen penamaan objektif-C. Walau bagaimanapun, menggunakan fungsi Python
- dan dokumentasi PYOBJC, anda boleh menavigasi API MACOS dan melaksanakan sebarang tugas yang boleh dilakukan dengan Objektif-C.
dir()
Apabila bekerja di Mac, kita boleh menggunakan PYOBJC (jambatan dari Python ke Objektif-C) untuk mengawal hampir semua aspek sistem. Apple menjadikan kebanyakan sistem operasi dikawal melalui modul Appkit, manakala PYOBJC menjadikan semua ciri ini boleh diakses oleh Python. Ini akan sangat berguna jika kita sudah tahu bagaimana menggunakan kaedah Appkit untuk melakukan apa yang kita mahu lakukan, tetapi berulang melalui API Sistem Operasi dengan hanya sedikit penjelajahan.
mari kita cuba contohnya. Pertama, kita memerlukan PYOBJC, yang boleh dipasang menggunakan
. Ini akan memasang keseluruhan senarai jambatan API sistem operasi, yang membolehkan akses kepada pelbagai aspek macOS. Buat masa ini, kami akan mempertimbangkan Appkit, alat untuk membina dan mengawal aplikasi berjalan di desktop Mac anda. pip install pyobjc
>>> from AppKit import NSWorkspace >>> NSWorkspace.sharedWorkspace().runningApplications() ( "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", ) >>>
dan localizedName
: bundleIdentifier
>>> for nsapp in NSWorkspace.sharedWorkspace().runningApplications(): ... print(f"{nsapp.localizedName()} -> {nsapp.bundleIdentifier()}") ... loginwindow -> com.apple.loginwindow BackgroundTaskManagementAgent -> com.apple.backgroundtaskmanagement.agent WindowManager -> com.apple.WindowManager CoreLocationAgent -> com.apple.CoreLocationAgent Terminal -> com.apple.Terminal Safari -> com.apple.Safari Spotlight -> com.apple.Spotlight Finder -> com.apple.finder
yang boleh kita panggil untuk mengaktifkan aplikasi, sama seperti kita akan mengklik ikon di dok. Jadi, untuk mencari safari dan kemudian aktifkannya, kami akan menggunakan fungsi activate
. Panggilan ke activate
memerlukan nilai activate
, seperti yang dinyatakan dalam dokumentasi, yang juga memerlukan pengimportan dari appkit: options
>>> from AppKit import NSWorkspace, NSApplicationActivateIgnoringOtherApps >>> safari_list = [x for x in NSWorkspace.sharedWorkspace().runningApplications() ... if x.bundleIdentifier() == 'com.apple.Safari'] >>> safari = safari_list[0] >>> safari.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
Cari versi python macOS API
Mencari nama python yang sepadan dengan nama objektif-C boleh menjadi agak rumit. Seperti yang ditunjukkan dalam kod di atas, fungsi Objektif-C activate
dipanggil activateWithOptions_
dalam Python. Terdapat satu set peraturan untuk penukaran nama ini, yang mana dokumentasi PYOBJC menerangkan, tetapi kadang -kadang lebih cepat menggunakan fungsi Python sendiri dir()
untuk memaparkan semua sifat objek dan kemudian pilih sifat -sifat yang kelihatan yang paling munasabah:
>>> from AppKit import NSWorkspace >>> NSWorkspace.sharedWorkspace().runningApplications() ( "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", "<nsrunningapplication: lsasn:="">", ) >>>
oh! Safari kami (contoh NSrunningApplication) mempunyai 452 sifat! Nah, yang kita mahukan mungkin dipanggil sesuatu seperti "mengaktifkan", jadi:
>>> for nsapp in NSWorkspace.sharedWorkspace().runningApplications(): ... print(f"{nsapp.localizedName()} -> {nsapp.bundleIdentifier()}") ... loginwindow -> com.apple.loginwindow BackgroundTaskManagementAgent -> com.apple.backgroundtaskmanagement.agent WindowManager -> com.apple.WindowManager CoreLocationAgent -> com.apple.CoreLocationAgent Terminal -> com.apple.Terminal Safari -> com.apple.Safari Spotlight -> com.apple.Spotlight Finder -> com.apple.finder
ahhh! Jadi activateWithOptions_
adalah nama fungsi yang perlu kita panggil. Begitu juga, nama pilihan yang kita mahu lulus ke fungsi adalah dalam Appkit sendiri:
>>> from AppKit import NSWorkspace, NSApplicationActivateIgnoringOtherApps >>> safari_list = [x for x in NSWorkspace.sharedWorkspace().runningApplications() ... if x.bundleIdentifier() == 'com.apple.Safari'] >>> safari = safari_list[0] >>> safari.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
Proses ini kadang-kadang dapat merasakan sedikit penerokaan, tetapi ia juga boleh dilakukan dari Python yang Objektif-C dapat melakukan apa-apa.
Artikel ini dikutip dari Python praktikal dan boleh dibeli di peruncit SitePoint Premium dan e-book.
Soalan Lazim Mengenai Menggunakan Python Untuk Mengawal MACOS
Apa itu Appkit dan bagaimana menggunakannya di Python untuk mengawal macOS?
AppKit adalah rangka kerja dalam SDK MACOS yang mengandungi semua objek yang diperlukan untuk melaksanakan antara muka pengguna yang didorong oleh grafik, dalam aplikasi MACOS. Ia menyediakan pelbagai kelas dan fungsi untuk mewujudkan dan menguruskan tingkap aplikasi, memproses input pengguna, melukis grafik, dan melaksanakan tugas lain yang berkaitan dengan antara muka pengguna. Di Python, anda boleh menggunakan PyObjc Bridge untuk mengakses Appkit dan rangka Objektif-C yang lain. Ini membolehkan anda menulis skrip Python yang dapat mengawal aplikasi MACOS, tingkap operasi, dan interaksi dengan perkhidmatan sistem.
bagaimana memasang modul pyobjc dalam python?
PYOBJC adalah python ke jambatan Objektif-C yang membolehkan anda menulis aplikasi MACOS yang lengkap di Python. Anda boleh menggunakan Python Packet Installer Pip untuk memasangnya. Buka tetingkap terminal dan taipkan arahan berikut: pip install pyobjc
. Ini akan memuat turun dan memasang modul PYOBJC dan kebergantungannya. Selepas pemasangan selesai, anda boleh mengimport modul dalam skrip Python menggunakan import objc
.
Saya mendapat ralat "tiada modul bernama appkit". Apa yang saya buat?
Ralat ini biasanya bermaksud bahawa modul Appkit tidak dipasang atau tidak dijumpai dalam persekitaran Python anda. Pertama, pastikan anda mempunyai modul PYOBJC yang dipasang (yang termasuk Appkit). Jika anda memasang PYOBJC tetapi masih mendapat ralat ini, anda mungkin menggunakan persekitaran Python yang berbeza di mana PYOBJC tidak dipasang. Dalam kes ini, anda perlu memasang PYOBJC dalam persekitaran Python yang betul, atau beralih ke persekitaran Python dengan PYOBJC dipasang.
Bagaimana untuk mengawal aplikasi macOS menggunakan python?
Menggunakan jambatan PYOBJC, anda boleh mengawal aplikasi MACOS menggunakan Python dengan menghantar arahan AppleScript atau menggunakan jambatan skrip. Sebagai contoh, anda boleh memulakan aplikasi, mengendalikan tetingkap, menghantar ketukan kekunci, dan melakukan tugas lain. Ini memerlukan pemahaman yang baik tentang Python dan Applescript, serta antara muka skrip aplikasi.
Bagaimana menggunakan python untuk memanipulasi tingkap di macOS?
Rangka Kerja AppKit menyediakan beberapa kelas untuk mengendalikan tingkap, seperti NSWindow
dan NSApplication
. Anda boleh menggunakan kelas ini untuk mendapatkan senarai semua tingkap terbuka, letakkan tetingkap di depan, saiz semula atau gerakkan tingkap, dan lakukan tugas yang berkaitan dengan tingkap yang lain. Ini memerlukan mengakses kelas Appkit dari Python menggunakan jambatan PYOBJC.
Bolehkah saya berinteraksi dengan perkhidmatan sistem di macOS menggunakan python?
Ya, anda boleh menggunakan jambatan Python dan PyoBJC untuk berinteraksi dengan pelbagai perkhidmatan sistem di MacOS. Sebagai contoh, anda boleh menggunakan kelas NSWorkspace
untuk membuka URL, melancarkan aplikasi, dan melaksanakan tugas lain yang berkaitan dengan ruang kerja pengguna. Anda juga boleh menggunakan kelas NSNotificationCenter
untuk menerbitkan dan memerhatikan pemberitahuan, yang membolehkan skrip anda bertindak balas terhadap peristiwa sistem.
bagaimana menghantar ketukan kekunci dari skrip python dalam macOS?
Anda boleh menggunakan kelas NSEvent
Rangka Kerja Appkit untuk membuat dan menerbitkan peristiwa papan kekunci, yang sebenarnya membolehkan anda menghantar ketukan kekunci dari skrip Python. Ini memerlukan pemahaman yang baik tentang jenis acara NSEvent
dan keyboard, serta kod kunci kunci yang anda mahu tekan.
Bolehkah saya melukis grafik dalam macOS menggunakan python?
Ya, rangka kerja Appkit menyediakan beberapa kelas untuk melukis grafik, seperti NSGraphicsContext
, NSBezierPath
, dan NSColor
. Anda boleh menggunakan kelas ini untuk menarik garis, bentuk, dan imej, menetapkan warna lukisan, dan melakukan tugas lukisan lain. Ini memerlukan mengakses kelas Appkit dari Python menggunakan jambatan PYOBJC.
Bagaimana memproses input pengguna dalam skrip python dalam macOS?
Rangka kerja AppKit menyediakan beberapa kelas untuk memproses input pengguna, seperti NSEvent
dan NSResponder
. Anda boleh menggunakan kelas ini untuk mendapatkan acara tetikus, acara papan kekunci, dan jenis input pengguna yang lain. Ini memerlukan mengakses kelas Appkit dari Python menggunakan jambatan PYOBJC.
Bolehkah saya menulis aplikasi macOS yang lengkap di Python?
Ya, dengan PYOBJC Bridging, anda boleh menulis aplikasi MACOS yang lengkap di Python. Ini termasuk mewujudkan antara muka pengguna grafik menggunakan Windows, Butang, dan kawalan lain, memproses input pengguna, melukis grafik, dan berinteraksi dengan perkhidmatan sistem. Walau bagaimanapun, ini memerlukan pemahaman yang baik tentang Python dan MacOS SDK, serta rangka kerja Appkit dan rangka kerja objektif-C yang lain.
Atas ialah kandungan terperinci Petua Pantas: Mengawal macOS dengan python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.
