Рассмотрим одно из следующих решений:
Решение A: Использование Python для сохранения пользовательского ввода в текстовом файле.
import os
from subprocess import Popen, PIPE
userPrompt = """
tell application "Finder"
activate
text returned of (display dialog "Enter your first name " default answer "" buttons {"Submit"})
end tell
"""
proc = Popen(['osascript', '-'], stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
firstname, error = proc.communicate(userPrompt)
filePath = os.path.join(os.path.expanduser('~'), 'Desktop', 'result.txt')
with open(filePath, 'w') as file:
file.write(firstname)
- При этом используется
Popen
Конструктор для оболочки команды osascript
, которая по сути выполняет AppleScript. - В настоящее время вводимые пользователем данные записываются в файл с именем
results.txt
, который сохраняется в * 1014 Папка * Desktop . Модуль os.path
используется для определения пути к файлу назначения. Вам нужно будет изменить это при необходимости. - Наконец, мы записываем пользовательский ввод в файл , используя
open()
.
Решение B. Использование AppleScript для сохранения пользовательского ввода в текстовый файл из Python.
Другой способ - shell-out с использованием AppleScript do shell script
команда для сохранения пользовательского ввода вместо текстового файла.
В этом случае ваш файл .py
будет выглядеть следующим образом:
userPrompt = """
tell application "Finder"
activate
set firstname to text returned of (display dialog "Enter your first name " default answer "" buttons {"Submit"})
do shell script "echo " & quoted form of firstname & " > ~/Desktop/result.txt"
return firstname
end tell
"""
proc = Popen(['osascript', '-'], stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
firstname, error = proc.communicate(userPrompt)
# print(firstname)
Строка, которая гласит:
do shell script "echo " & quoted form of firstname & " > ~/Desktop/result.txt"
по существу использует утилиту shells echo
для перенаправления / сохранения пользовательского ввода в файл с именем results.txt
, который снова сохраняется в папке Desktop .