Как написать текстовый файл с помощью AppleScript?
Итак, это он. Как написать текстовый файл с помощью AppleScript?
Я пробовал искать, но ответы кажутся летними, и я не совсем уверен, что должно быть предпочтительным идиомом в наши дни.
Ответы
Ответ 1
on write_to_file(this_data, target_file, append_data) -- (string, file path as string, boolean)
try
set the target_file to the target_file as text
set the open_target_file to ¬
open for access file target_file with write permission
if append_data is false then ¬
set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file
Взаимодействие с ним можно очистить следующим...
my WriteLog("Once upon a time in Silicon Valley...")
on WriteLog(the_text)
set this_story to the_text
set this_file to (((path to desktop folder) as text) & "MY STORY")
my write_to_file(this_story, this_file, true)
end WriteLog
Ответ 2
Я также узнал, что быстрый взлом, если нужно лишь немного переплетать текст в файл, - это использовать оболочку.
do shell script "echo TEXT > some_file.txt"
Ответ 3
Краткая версия в чистом AppleScript:
set myFile to open for access (choose file name) with write permission
write "hello world" to myFile
close access myFile
Кажется, нет ни одного командного решения. Вместо этого вам нужно открыть и закрыть файл.
Ответ 4
@JuanANavarro.
При использовании оболочки вы должны использовать цитированную форму для ТЕКСТА и путь к файлу.
Это поможет остановить ошибки с пробелами в именах файлов и символах, таких как апострофы в тексте, например.
set someText to "I've also learned that a quick hack, if one only wants to spit a bit of text to a file, is to use the shell."
set textFile to "/Users/USERNAME/Desktop/foo.txt"
do shell script "echo " & quoted form of someText & " > " & quoted form of textFile
Вышеупомянутый script работает отлично.
Если у меня не было & цитированная форма someText
но вместо этого я имел & someText Я бы получил следующую ошибку.
error "sh: -c: строка 0: неожиданный EOF при поиске соответствия` ''
sh: -c: строка 1: синтаксическая ошибка: неожиданный конец файла" номер 2
Апострофы в Я "рассматривается как часть команды.
Если у меня был
установите textFile в "/Users/USERNAME/Desktop/some foo.txt" как мой путь к файлу (обратите внимание на пробел.) И не было & цитата из textFile, но вместо этого я имел & Textfile
Затем, когда файл был выписан, он будет записывать в файл с именем " some", а не " some foo.txt"
Ответ 5
Для меня запуск do shell script был слишком медленным на PowerBook G4, когда он был запущен в цикле 300000 раз;), но, конечно, быстрее писать, что иногда имеет смысл. Вы также хотели бы избежать символов оболочки следующим образом:
сделать shell script "эхо" и процитированную форму foobar и " → some_file.txt"
и по эстетическим соображениям я бы использовал
скажите мне сделать shell script "#..."
но я еще не подтвердил (что я считаю), что если "сделать оболочку script" находится в блоке "tell Finder", например, это процесс Finder, который создает подоболочку. С "скажите мне, чтобы сделать оболочку script" по крайней мере script Журнал редактора выглядит лучше для меня.;)