Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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
Python 基于文件编码和文件大小计算纯文本文件中的字符数_Python_Encoding_Grep_Full Text Search_Plaintext - Fatal编程技术网

Python 基于文件编码和文件大小计算纯文本文件中的字符数

Python 基于文件编码和文件大小计算纯文本文件中的字符数,python,encoding,grep,full-text-search,plaintext,Python,Encoding,Grep,Full Text Search,Plaintext,背景信息:我正在自学python并行编程,为此,我正在实现一个版本的grep,它将搜索任务拆分为多个工作单元,在不同的核心上执行 我注意到,由于一些优化,grep能够快速搜索,关键的优化是它避免读取输入文件中的每个字节。这方面的一个例子是,将输入读入一个缓冲区,而不是根据换行符的位置进行拆分 我想尝试将较大的输入文件拆分为较小的工作单元,但不读取每个字节来查找新行或任何类似的内容来确定拆分点。我的计划是将输入一分为二(分割仅仅是偏移量),然后继续将这些一半分割成两半,直到它们具有可管理的(可能是

背景信息:我正在自学python并行编程,为此,我正在实现一个版本的grep,它将搜索任务拆分为多个工作单元,在不同的核心上执行

我注意到,由于一些优化,grep能够快速搜索,关键的优化是它避免读取输入文件中的每个字节。这方面的一个例子是,将输入读入一个缓冲区,而不是根据换行符的位置进行拆分

我想尝试将较大的输入文件拆分为较小的工作单元,但不读取每个字节来查找新行或任何类似的内容来确定拆分点。我的计划是将输入一分为二(分割仅仅是偏移量),然后继续将这些一半分割成两半,直到它们具有可管理的(可能是预定的)大小——当然,要做到这一点,您需要知道输入的大小


问题:如果已知文件大小和编码,是否可以计算或估计纯文本文件中的字符数?

理论上很难(也就是说,由于你看不到文件中是否有非标准化字符——如果你知道你选择的语言使用一些简单的边界,你也可以找到最近的单词边界),实际上——在很多情况下是的(只要你选择像UTF32这样的固定宽度编码或只有ASCII文本).嘿,谢谢你,我会做一些研究-我还没有达到优化到这个水平的阶段,但我只是想知道它是否值得考虑用于学习并行编程的练习-合理。对于真正的工具-可能毫无意义,因为IO本身通常是瓶颈,实际上做一些简单的事情,比如grep比从文件中读取要快得多(尝试两种方法和测量——这也是很好的学习体验)。