Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 使用ReadList读取UTF-8文本文件_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 使用ReadList读取UTF-8文本文件

Wolfram mathematica 使用ReadList读取UTF-8文本文件,wolfram-mathematica,Wolfram Mathematica,是否可以使用ReadList读取使用ReadList[…,Word]的UTF-8(或任何其他)编码文本文件,还是仅使用ASCII码?如果仅为ASCII码,是否可以以良好的性能“修复”已读取数据的编码(即保持ReadList优于Import)的性能优势) Import[…,CharacterEncoding->“UTF8”]可以工作,但它比ReadList慢很多$CharacterEncoding对ReadList 有关在大型输入上测试性能的信息,请参阅中的测试文件 以下是大型ish文本文件中

是否可以使用
ReadList
读取使用
ReadList[…,Word]
的UTF-8(或任何其他)编码文本文件,还是仅使用ASCII码?如果仅为ASCII码,是否可以以良好的性能“修复”已读取数据的编码(即保持
ReadList
优于
Import
)的性能优势)

Import[…,CharacterEncoding->“UTF8”]
可以工作,但它比
ReadList
慢很多
$CharacterEncoding
ReadList

有关在大型输入上测试性能的信息,请参阅中的测试文件


以下是大型ish文本文件中答案的计时:

导入

In[2]:= Timing[
 data = Import[file, "Text"];
 ]

Out[2]= {5.234, Null}
海克

In[4]:= Timing[
 data = ReadList[file, String];
 FromCharacterCode[ToCharacterCode[data], "UTF8"];
 ]

Out[4]= {4.328, Null}
巫师先生

In[5]:= Timing[
 string = FromCharacterCode[BinaryReadList[file], "UTF-8"];
 ]

Out[5]= {2.281, Null}

如果我省略了
Word
,则此操作有效:

$CharacterEncoding = "UTF-8";

ReadList["UTF8.txt"]
但是,这是一个失败,因为数据不是作为字符串读取的

请在较大的文件上尝试此操作,并报告其性能: 这似乎有效

FromCharacterCode[ToCharacterCode[ReadList["raw.php.txt", Word]], "UTF-8"]
我得到的链接测试文件的计时是

FromCharacterCode[ToCharacterCode[ReadList["test.txt", Word]], "UTF-8"]); // Timing

(* ==> {0.000195, Null} *)

Import["test.txt", "Text"]; // Timing

(* ==> {0.01784, Null} *)

请链接到我可以用来测试的UTF-8编码文件好吗?我记得
ToCharacterCode
本机处理列表,所以我认为不需要
Map
。这是否改善了其性能?:-)我该把答案给谁?;-)你的第一个版本也欺骗了我。我真的需要打开显示那些引号…谢谢!事实上,
To/FromCharacterCode
是关键!(查看其他答案和我的时间编辑。)@Szabolcs和Heike,我没有看到这个答案,即使我发布了我的更新!我甚至迫不及待地刷新了页面,看看Szabolcs是否尝试过我的新答案。也许我就是那个瞎子,但这似乎是个小故障。很抱歉我踩到了脚趾。我一直在使用脚本拦截器(NoScript)。我敢打赌它一定是以某种方式干扰了页面更新。
FromCharacterCode[ToCharacterCode[ReadList["test.txt", Word]], "UTF-8"]); // Timing

(* ==> {0.000195, Null} *)

Import["test.txt", "Text"]; // Timing

(* ==> {0.01784, Null} *)