我有一个包含数字列表的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”(我想这是第一个条目的前两个数字)。
发生了什么事?
感谢。
答案 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 程序只输出文件内容。