gpt4 book ai didi

csv - Applescript 没有保存文件的权限

转载 作者:行者123 更新时间:2023-12-04 13:46:05 26 4
gpt4 key购买 nike

我正在尝试编写一个脚本,将 .numbers 文档转换为 .csv 文档。它需要可从命令行执行,以便我可以在预提交 git Hook 中使用它。

我已经编写了一个 AppleScript 来获取一个数字文件的路径并将其导出为 CSV,但实际的导出将不起作用,因为“您没有权限。(6)”。我认为这与沙盒有关,但我不能使用 AppleScript 弹出文件选择器,因为这需要完全自动化。

如何授予我的 AppleScript 导出到该文件的权限?

on run argv
set input_file to item 1 of argv

set output_file to input_file
--strip off the .numbers extention
set delims to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
if output_file contains "." then set output_file to (text items 1 thru -2 of output_file) as text
-- set the extension to be csv
set output_file to output_file & ".csv"
set output_file to POSIX file output_file

tell application "Numbers"
activate
tell (open input_file)
set activeDocument to it
with timeout of 3 seconds
export activeDocument as CSV to output_file
end timeout
close activeDocument saving yes
end tell
end tell
end run

完整的错误信息是 export_numbers_to_csv.scpt:604:676:执行错误:Numbers 出现错误:文档“DisplayPlusButtonTestScripts.numbers”无法导出为“DisplayPlusButtonTestScripts”。你没有权限。 (6)

我的调用是来自工作目录 /Users/me/osascript export_numbers_to_csv.scpt/Users/me/Test\Scripts/MyTests.numbers

我确实有权写入我要求脚本写入的目录。我还尝试导出到一个临时目录(通过 path to temporary items from user domain)但得到了相同的错误消息。

最佳答案

如果 .csv 文件已存在于同一目录中并且与您尝试导出到的文件具有相同的名称,则权限可能会变得困惑。如果您创建了该 .csv 文件或至少在某个时候编辑/打开了它,那么您将有权导出到该名称,但如果它之前从未在您的计算机上打开过写访问权限(例如,如果您下载了它),那么必要的权限将不存在。

要解决此问题,您可以在脚本中的“告诉应用程序“Numbers”” block 之前添加以下行:

open for access file output_file
close access file output_file

这告诉脚本打开文件进行写访问,因为只需要打开它来获得必要的权限,它就会关闭它。

关于csv - Applescript 没有保存文件的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41247536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com