AppleScript:转换列表中的TXT文件

时间:2010-05-06 15:04:56

标签: applescript

我有一个包含数字列表的txt普通文件。每行一个数字,如:

978-972-722-649-8
978-972-722-646-7
978-972-722-627-6
978-972-722-625-2
978-972-722-594-1

此列表位于名为file.txt的文件上,使用Western(ISO Latin 1)编码创建并保存在TextEdit上。

现在我正在尝试使用Applescript读取此文件并将其转换为列表。

我有这个脚本

set myDirectory to path to desktop folder as string
set myFile to myDirectory & "file.txt"

try
    set open_file to ¬
        open for access file myFile without write permission
    set myList to read open_file using delimiter return
    close access open_file
on error
    try
        close access file open_file
    end try
end try

运行此脚本后,myList只包含一个项目,此项目为“97”(我想这是第一个条目的前两个数字)。

发生了什么事?

感谢。

3 个答案:

答案 0 :(得分:2)

如果您将文件保存为Western(ISO Latin 1),则很可能将LF作为分隔符。

尝试使用以下行:

使用分隔符“\ n”

将myList设置为读取open_file

看看它是否适合你。

我尝试在笔记本电脑上运行您的脚本,并且上述修改可以正常运行。

另外,在shell中运行od命令以查看文件是否编码正确。这是我的命令的输出:

vlad$ od -c file.txt 
0000000    9   7   8   -   9   7   2   -   7   2   2   -   6   4   9   -
0000020    8  \n   9   7   8   -   9   7   2   -   7   2   2   -   6   4
0000040    6   -   7  \n   9   7   8   -   9   7   2   -   7   2   2   -
0000060    6   2   7   -   6  \n   9   7   8   -   9   7   2   -   7   2
0000100    2   -   6   2   5   -   2  \n   9   7   8   -   9   7   2   -
0000120    7   2   2   -   5   9   4   -   1  \n                        
0000132

答案 1 :(得分:1)

read命令的using delimiter(s)参数存在问题。请改用以下内容,它适用于任何换行符:

set myList to every paragraph of (read open_file)

答案 2 :(得分:1)

这听起来像文件一样奇怪,但你尝试过另一种方法吗?

set myfilePPath to posix path of myFile
set myList to every paragraph of (do shell script("cat \"" & myfilePPath & "\""))

cat 程序只输出文件内容。