Hướng dẫn python applescript - applescript python
Bài tiếp theo bài viết trước Previous post Show
Ngày 12 tháng 6 năm 2022 lúc 1:04 chiều bởi Tiến sĩ Drang JavaScript cho tự động hóa (JXA) không phải là cách duy nhất để thực hiện những thứ Applescrip trong các chương trình được viết bằng một ngôn ngữ khác ngoài AppleScript. Lệnh Vài năm trước, tôi đã viết một mô -đun Python ngắn có tên 0 đã sử dụng subprocess để chạy mã AppleScript trong các tập lệnh Python của tôi. Điều này đã trở lại khi tôi đang sử dụng Python 2, có một chút khác biệt so với Python ngày nay 3. Ngay cả khi tôi chuyển sang sử dụng Python 3 (thông qua Anaconda) cho hầu hết các chương trình của mình, tôi đã bị mắc kẹt với Python 2 cho các tập lệnh sử dụng 0 Mô -đun. Rốt cuộc, các kịch bản đã hoạt động và Apple đã không thể loại bỏ Python 2 tại 4, phải không?Chà, Apple đã làm điều đó trong một trong các bản phát hành điểm của Monterey, và các kịch bản Python 2 khác nhau mà tôi đã dựa vào trong gần một thập kỷ đã bị phá vỡ. Vì vậy, tôi viết lại mô -đun 0 để hoạt động trong Python 3, đã áp dụng lệnh 6 cho các tập lệnh cũ cần cập nhật, và tất cả lại với thế giới.
Tại đây, phiên bản mới của 7:
Hàm 8, mà tôi hiếm khi sử dụng, giống như nó. Hàm 9 tận dụng chức năng 0 trong mô -đun Python 3, ____ ____99 để thực hiện chuỗi AppleScript được truyền cho nó.Ở đây, một tập lệnh ví dụ, được gọi là 2, sử dụng 9:
Chuỗi 4 là Applescript thẳng ngoại trừ 5 trong dòng 8. Đây là một trình giữ chỗ mà hàm 6 (dòng 14) sử dụng để chèn đối số đầu tiên của tập lệnh. Nếu tập lệnh được chạy như thế này từ dòng lệnh,
Sau đó, Smith Smith sẽ là đối số ____ 26, và đầu ra sẽ là một chuỗi các tên đầy đủ của tất cả các Smith trong các liên hệ của tôi, một dòng trên mỗi Smith. Tất nhiên, đây là một kịch bản đồ chơi. Mô -đun 0 trở nên thực sự hữu ích trong các tập lệnh sử dụng Python để lắp ráp các phần thông tin khác nhau để xây dựng lệnh Applescript, sau đó rút thông tin khác ra khỏi một ứng dụng và trình bày lại cho Python để xử lý thêm. Tôi có xu hướng sử dụng 0 với các liên hệ, lịch, lời nhắc và các ứng dụng thư có chứa thông tin tôi sử dụng để điều hành doanh nghiệp của mình nhưng từ điển Applescript có thể xử lý thông tin đó theo cách tôi muốn.Bài tiếp theo bài viết trước Previous post Tôi hy vọng hướng dẫn của người mới bắt đầu này có bạn suy nghĩ về tất cả các loại quy trình và nhiệm vụ bạn muốn tự động hóa. Cú pháp tôi đã hiển thị cho bạn cùng với từ điển AppleScript sẽ giúp bạn có một chặng đường dài. Tuy nhiên, nếu bạn thực sự quan tâm đến việc thực hiện AppleScript theo một số cách hữu ích, bạn sẽ có nhiều việc đọc hơn. Apple cung cấp rất nhiều thông tin tất cả về Applescript trên trang web của họ. Đây là một nơi tốt để bắt đầu. Một trang web khác mà tôi đã chọn rất nhiều từ T & B. Nó cung cấp một số giải thích và hướng dẫn thực sự chuyên sâu để bạn làm theo (một chút ngày, nhưng kỹ lưỡng và miễn phí). Xin vui lòng chào mừng để lại nhận xét và cho chúng tôi biết nếu bạn thấy hướng dẫn này hữu ích! Những lời khuyên táo khác mà bạn muốn thấy trong tương lai? Applescript là gì?AppleScript là ngôn ngữ kịch bản mạnh mẽ được tích hợp cho OS X. Việc sử dụng chính cho AppleScript là tự động hóa các tác vụ thường lặp đi lặp lại và tốn thời gian. Chẳng hạn, với tư cách là một freelancer, tôi ghét việc tạo hóa đơn mỗi tuần cho các khách hàng khác nhau của tôi. Để giải quyết vấn đề này, tôi đã viết một AppleScript đọc số giờ mà tôi đăng nhập vào ICL, tạo hóa đơn trong Microsoft Excel dựa trên những giờ đó và gửi email hóa đơn cho khách hàng của tôi. Tất cả chỉ với một nút bấm! Cửa sổ chính Bắt đầu: Khối TellĐể tạo AppleScript, hãy mở ứng dụng "Trình chỉnh sửa tập lệnh" nằm trong thư mục AppleScript trong thư mục Ứng dụng. Bạn sẽ thấy một cửa sổ đơn giản chứa một trường văn bản lớn với một dải nút dọc theo đỉnh. Bên trong trường văn bản Loại mã sau: [AppleScript] Nói với ứng dụng "Finder" Hiển thị hộp thoại "Hello World" End Tell [/Applescript] Applescript cố gắng sử dụng tiếng Anh đơn giản bất cứ khi nào có thể làm cho việc mã hóa cực kỳ đơn giản. Hầu hết các lệnh trong AppleScript được đặt bên trong một "khối nói". Nó được gọi là "Khối nói" bởi vì bạn đang "nói" một ứng dụng nhất định những gì bạn muốn nó làm. Chẳng hạn, mã trên đang nói với trình tìm kiếm hiển thị một cửa sổ hộp thoại chứa các từ "Hello World". Sau khi bạn kết thúc với một lệnh hoặc chuỗi lệnh cho một ứng dụng đã cho, bạn kết thúc khối bằng "end tell". Luôn nhớ kết thúc các khối báo cáo của bạn một cách chính xác hoặc mã sẽ không biên dịch! Sau khi bạn hoàn thành nhập mã ở trên, nhấp vào biểu tượng Hammer "Biên dịch". Nếu cú pháp của bạn là chính xác, mã của bạn sẽ tự động định dạng và tô màu. Nếu bạn đã mắc lỗi, trình chỉnh sửa tập lệnh sẽ làm nổi bật khu vực có vấn đề và cung cấp cho bạn một thông điệp về những gì nó nghĩ có thể đã sai. Dưới đây là một tham chiếu nhanh đến các màu khác nhau mà bạn sẽ thấy trong mã được biên dịch của bạn (được tìm thấy trong trình soạn thảo tập lệnh> Tùy chọn). Hướng dẫn màu sắc Sau khi mã của bạn đã biên dịch, nhấp vào nút "Chạy". Bạn sẽ xem hộp thoại sau: Chào thế giới Bây giờ nhấp vào nút "OK" và nhìn vào cuối cửa sổ Trình chỉnh sửa tập lệnh của bạn. Khi bạn chạy tập lệnh, trình chỉnh sửa tập lệnh cho bạn biết kết quả là gì hoặc "được trả về". Trong trường hợp này, nó cho bạn biết rằng nút "OK" đã được nhấp. Trở lại ok Khai báo các biếnCác biến về cơ bản giống nhau trong mọi ngôn ngữ lập trình. Họ cung cấp một cách dễ dàng để truy cập và thao tác nhiều thông tin trong đoạn mã nhỏ gọn. Tạo hoặc "Tuyên bố" các biến là khác nhau cho mỗi ngôn ngữ. Trong AppleScript, bạn khai báo các biến như sau: [Applescript] Đặt Thestring thành "Hello World" Nói với ứng dụng "Finder" Hiển thị hộp thoại Thestring End Tell [/Applescript] Applescript cố gắng sử dụng tiếng Anh đơn giản bất cứ khi nào có thể làm cho việc mã hóa cực kỳ đơn giản. Hầu hết các lệnh trong AppleScript được đặt bên trong một "khối nói". Nó được gọi là "Khối nói" bởi vì bạn đang "nói" một ứng dụng nhất định những gì bạn muốn nó làm. Chẳng hạn, mã trên đang nói với trình tìm kiếm hiển thị một cửa sổ hộp thoại chứa các từ "Hello World". Sau khi bạn kết thúc với một lệnh hoặc chuỗi lệnh cho một ứng dụng đã cho, bạn kết thúc khối bằng "end tell". Luôn nhớ kết thúc các khối báo cáo của bạn một cách chính xác hoặc mã sẽ không biên dịch! Sau khi bạn hoàn thành nhập mã ở trên, nhấp vào biểu tượng Hammer "Biên dịch". Nếu cú pháp của bạn là chính xác, mã của bạn sẽ tự động định dạng và tô màu. Nếu bạn đã mắc lỗi, trình chỉnh sửa tập lệnh sẽ làm nổi bật khu vực có vấn đề và cung cấp cho bạn một thông điệp về những gì nó nghĩ có thể đã sai. Dưới đây là một tham chiếu nhanh đến các màu khác nhau mà bạn sẽ thấy trong mã được biên dịch của bạn (được tìm thấy trong trình soạn thảo tập lệnh> Tùy chọn). Hướng dẫn màu sắcSau khi mã của bạn đã biên dịch, nhấp vào nút "Chạy". Bạn sẽ xem hộp thoại sau: Chào thế giới Bây giờ nhấp vào nút "OK" và nhìn vào cuối cửa sổ Trình chỉnh sửa tập lệnh của bạn. Khi bạn chạy tập lệnh, trình chỉnh sửa tập lệnh cho bạn biết kết quả là gì hoặc "được trả về". Trong trường hợp này, nó cho bạn biết rằng nút "OK" đã được nhấp. Trở lại ok Khai báo các biến Hiển thị hộp thoại Thestring & Theanswer End Tell [/Applescript] Bạn có thể nhanh chóng biên dịch mã của mình bằng cách nhấn phím "Enter" (không phải phím trả về). Điều này được đặt trên Ten Key Number Pad trên máy tính để bàn và bên cạnh phím "Lệnh" ở bên phải của thanh không gian trên máy tính xách tay. Khi kịch bản của bạn trở nên phức tạp hơn, một chút tổ chức theo thứ tự. Bằng cách gõ hai dấu gạch ngang "-" Trước một dòng văn bản, bạn có thể chèn nhận xét. Sử dụng nhận xét để phân tách và mô tả các phần mã của bạn để dễ dàng điều hướng. Trong ví dụ này, tôi đã tạo một biến chuỗi (chỉ văn bản) và một vài biến số nguyên. Lưu ý rằng bạn có thể thực hiện các hoạt động toán học trên các biến. Ở đây tôi đã đặt "TheFirstNumber" bằng ba và "psesecondNumber" thành hai và sau đó thêm chúng lại với nhau trong "Theanswer". Cũng lưu ý rằng bạn có thể thay đổi một biến sau khi được khai báo. Ngay sau khi đặt "Theanswer" thành tổng của "TheFirstNumber" và "TheSecondNumber" (dẫn đến 5), tôi đã thay đổi giá trị của "Theanswer" bằng cách thêm một vào nó (dẫn đến 6). Nếu bạn chạy tập lệnh này, bạn sẽ thấy kết quả sau: Một số toán học cơ bản Một lần nữa, điều này chỉ làm trầy xước bề mặt của các loại hoạt động bạn có thể thực hiện trên các biến. Bây giờ bạn chỉ nên hiểu rằng một biến không tĩnh. Phần lớn sức mạnh của đằng sau bất kỳ ngôn ngữ lập trình nào là khả năng thao tác các biến để thực hiện nhiều nhiệm vụ khác nhau. Chìa khóa cho tất cả: Từ điển ApplescriptMặc dù AppleScript có một loạt các lệnh có thể được áp dụng cho bất kỳ chương trình hoặc mục nào trong OS X, nhưng các nhà phát triển của mỗi ứng dụng được giao nhiệm vụ thêm hỗ trợ Applescript đầy đủ cho các ứng dụng của họ. Điều này có nghĩa là các nhà phát triển phải viết các hướng dẫn đơn giản về cách giao tiếp với các ứng dụng của họ thông qua AppleScript. Những hướng dẫn này được gọi là "từ điển". Để xem từ điển, hãy truy cập Tệp> Mở Dictionary trong trình chỉnh sửa tập lệnh. Cuộn xuống danh sách các ứng dụng, nhấp vào thư và nhấn "OK". Bạn sẽ xem cửa sổ sau: Từ điển thư Cột bên trái chứa "Suites" có sẵn của các lệnh và vật phẩm. Khi bạn nhấp vào bộ, bạn sẽ thấy mọi thứ có trong bộ được hiển thị bên dưới. Bạn có thể thu hẹp bản xem trước này bằng cách nhấp vào cột thứ hai, sau đó một lần nữa trong phần ba. Các bộ chứa các lệnh (c có vòng tròn) và các lớp (c có hình vuông), các lớp chứa các thuộc tính (p) và các phần tử (e). Để hiểu tất cả những điều này hoạt động như thế nào, hãy sử dụng từ điển này để tạo tập lệnh. Bước 1: Tạo một thuật toán cho tập lệnh của chúng tôi Create an Algorithm for Our ScriptĐầu tiên chúng ta cần một thuật toán, đó là một cách lạ mắt để nói rằng chúng ta cần viết ra chính xác những gì kịch bản của chúng ta sẽ làm. Chúng tôi muốn tạo một tập lệnh để soạn và gửi email. Chúng tôi sẽ muốn sử dụng các biến để giúp dễ dàng thay đổi thông báo cũng như tin nhắn được gửi đến ai. Khi chúng tôi viết thuật toán của mình, chúng tôi cần ghi nhớ cách thức hoạt động của AppleScript. Đây là những bước tôi đã đưa ra:
Bước 2: Tạo một số biến Create Some VariablesChúng tôi đã biết cách tạo các biến giữ văn bản để chúng tôi thậm chí không cần từ điển cho bước một. Đây là mã trông như thế nào: [AppleScript] -Variabled đặt người nhận thành "John Doe" đặt người nhận thành "" Đặt mục tiêu thành "Email tự động của AppleScript" đặt ra "Email này đã được tạo và gửi bằng AppleScript!" [/Applescript] Như bạn có thể thấy, chúng tôi chỉ cần đặt văn bản giữ chỗ vào các biến cho tên và địa chỉ email của người nhận cũng như chủ đề và nội dung của tin nhắn của chúng tôi. Bạn có thể thay đổi những thứ này thành bất cứ thứ gì bạn muốn. Hãy chắc chắn đặt địa chỉ email của riêng bạn vào biến người nhận để bạn có thể đảm bảo rằng tập lệnh hoạt động đúng khi bạn nhận được email. Bước 3: Tạo biến tin nhắn với từ điển thư Create the Message Variable with the Mail DictionaryVì chúng tôi không biết làm thế nào để gửi thư để tạo một tin nhắn mới, đây là nơi chúng tôi cần tham khảo từ điển Applescript. Nếu bạn nhấp vào "bộ tiêu chuẩn", bạn sẽ thấy một số lệnh phổ biến đạt tiêu chuẩn trong Applescript. Biết rằng chúng tôi muốn "tạo" một thông điệp mới, chúng tôi chỉ cần cuộn qua các tùy chọn và tìm thấy một cái gì đó tương đương. Bạn sẽ thấy không có lệnh "Tạo" "nhưng khoảng một nửa xuống có lệnh" tạo ". Điều đó nghe có vẻ hoàn hảo, vì vậy bây giờ chúng tôi biết để nói với AppleScript chúng tôi muốn "làm" một cái gì đó. Tiếp theo Nhấp vào bộ "Thư". Chúng tôi đã có lệnh của chúng tôi (thực hiện) để cuộn xuống qua các lệnh (động từ) cho đến khi bạn thấy các lớp (danh từ). Lớp học đầu tiên chúng ta đi qua là "thông điệp gửi đi", điều này thật tuyệt bởi vì đó chính xác là những gì chúng ta muốn! Bây giờ nhấp vào lớp "Thông báo gửi đi" và xem các thuộc tính có sẵn bên dưới. Chúng tôi cần cắm các biến của mình cho tên của người nhận, địa chỉ email của người nhận, chủ đề và nội dung của tin nhắn. Trong danh sách các thuộc tính, không có gì về người nhận nhưng có các thuộc tính cho chủ đề và nội dung. Bây giờ chúng ta biết cú pháp thích hợp để chỉ các thuộc tính này. Lưu ý rằng từ điển cung cấp cho bạn định dạng để xác định các thuộc tính. Ví dụ, cho chủ đề, chúng ta sẽ nhập từ "chủ đề" theo sau là một dấu hai chấm sau khi văn bản của chủ đề. Nội dung môn học Ngoài ra, trong bộ này, bạn sẽ tìm thấy một lệnh "Gửi", mà chúng ta có thể sử dụng để gửi tin nhắn bằng cách gõ "Gửi". Chúng tôi vẫn cần biết cú pháp thích hợp cho tên và địa chỉ email của người nhận. Vì nó không có trong bộ này, hãy nhấp vào bộ "Tin nhắn". Khoảng nửa chừng danh sách các lớp chúng tôi tìm thấy "người nhận". Nhấp vào lớp người nhận và chúng tôi thấy rằng một lần nữa, chúng tôi có thể sử dụng tiếng Anh đơn giản để chỉ các thuộc tính của người nhận. Chúng tôi chỉ cần nhập "Tên" và "Địa chỉ". Bạn có thể sử dụng tính năng tìm kiếm để săn lùng các thuộc tính, lớp, phần tử và lệnh nhanh chóng. Bây giờ chúng tôi đã sẵn sàng để tạo biến tin nhắn của chúng tôi bằng cách sử dụng cú pháp mà chúng tôi vừa học. Đây là mã trông như thế nào: [AppleScript] -Variabled đặt người nhận thành "John Doe" đặt người nhận thành "" Đặt mục tiêu thành "Email tự động của AppleScript" đặt ra "Email này đã được tạo và gửi bằng AppleScript!" --mail Tell Block Tell Ứng dụng "Mail" -Tạo thông báo đặt Themessage để tạo thông báo đi mới với các thuộc tính {chủ đề: thesubject, nội dung: thecontent, có thể nhìn thấy: true} End Tell [/Applescript] Lưu ý rằng tôi đã tạo một khối báo cáo để gửi kèm tất cả các lệnh vào ứng dụng thư. Sau đó, tôi đặt một biến (themessage) thành "tạo" một "tin nhắn gửi đi mới" với các thuộc tính được thảo luận ở trên. Cũng lưu ý rằng các bộ thuộc tính luôn được chứa trong dấu ngoặc {}. Bước 4: Đặt người nhận và gửi tin nhắn Set the Recipient and Send the MessageBây giờ chúng tôi đã tạo biến tin nhắn của mình, chúng tôi cần gọi biến đó và tạo một thông báo mới với các thuộc tính của Themessage. Chúng tôi cũng cần đặt người nhận và gửi tin nhắn. Để làm điều này, chúng tôi sẽ sử dụng một khối báo cáo trên biến của chúng tôi. Đây là kịch bản đã hoàn thành của chúng tôi. [AppleScript] -Variabled đặt người nhận thành "John Doe" đặt người nhận thành "" Đặt mục tiêu thành "Email tự động của AppleScript" đặt ra "Email này đã được tạo và gửi bằng AppleScript!" --mail Tell Block Tell Ứng dụng "Mail" -Tạo thông báo đặt Themessage để tạo thông báo đi mới với các thuộc tính {chủ đề: thesubject, nội dung: thecontent, có thể nhìn thấy: true} End Tell [/Applescript] Lưu ý rằng tôi đã tạo một khối báo cáo để gửi kèm tất cả các lệnh vào ứng dụng thư. Sau đó, tôi đặt một biến (themessage) thành "tạo" một "tin nhắn gửi đi mới" với các thuộc tính được thảo luận ở trên. Cũng lưu ý rằng các bộ thuộc tính luôn được chứa trong dấu ngoặc {}. Bước 4: Đặt người nhận và gửi tin nhắn Bây giờ chúng tôi đã tạo biến tin nhắn của mình, chúng tôi cần gọi biến đó và tạo một thông báo mới với các thuộc tính của Themessage. Chúng tôi cũng cần đặt người nhận và gửi tin nhắn. Để làm điều này, chúng tôi sẽ sử dụng một khối báo cáo trên biến của chúng tôi. Đây là kịch bản đã hoàn thành của chúng tôi. . -Kết thúc tin nhắn gửi Kết thúc Tell End Tell [/AppleScript] Đầu tiên, chúng tôi đã tạo một bản sao mới của Themessage (kế thừa tất cả các thuộc tính chúng tôi đã đặt vào đó) và đặt nó "thành người nhận thuộc tính". Điều này cho Mail rằng chúng tôi muốn thêm người nhận với các thuộc tính sau. Ở đây chúng tôi chỉ sử dụng cú pháp mà chúng tôi đã học trước đây và các biến cho tên và địa chỉ của người nhận.Cuối cùng, chúng tôi đã gọi lệnh "Gửi" để gửi tin nhắn của chúng tôi. Lưu ý rằng chúng tôi có hai khối để đóng lần này. Khi bạn đã biên dịch mã của mình và sửa bất kỳ lỗi nào sẽ nhấn "Chạy". Thư sẽ tự động tạo và gửi tin nhắn. Tadaah! Kiểm tra thư mục đã gửi của bạn để đảm bảo mọi thứ hoạt động. Thư Bạn có thấy bài đăng này hữu ích? Biên tập viên, nhà văn, nhà thiết kế, và nhiếp ảnh gia.Tôi làm việc cho Envato và đã viết hàng tấn công cụ cho Design Shack. |