文本任意不读入缓冲区

时间:2016-09-24 21:24:41

标签: python

我试图用Watson Alchemy API分析哲学和经典文本,我在将计算机上的.txt文件中的文本读取到python变量时遇到了麻烦。

以下是代码:

from __future__ import print_function
from alchemyapi import AlchemyAPI
import argparse
import json



def conceptual(fileName):
    path = "/Users/myname/Desktop/texts/"

    name = path + fileName

    with open(name, 'r') as myfile:
         data=myfile.read().replace('\n', ' ')

    if data != None:
    print(data)


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--concepts', dest = 'conceptFile', required =    False)

    args = parser.parse_args()

    if args.conceptFile:
         conceptual(args.conceptFile)
    else:
         print('Use CL args.')

main()

问题是,对于某些文本,它可以正常工作:整个.txt文件打印到终端窗口。对于其他人,它会打印出类似这样的内容(对于所有不起作用的文件,输出与此非常相似):

.                       THE ENDy mountains. glowing and strong, like a

该特定文件(Zarauthstra_Nietzsche.txt)的结尾是

 Thus spake Zarathustra and left his cave, glowing and strong, like a
morning sun coming out of gloomy mountains.


                    THE END

但文件的其余部分无法打印。

我一直在修补各种差异,在这里和那里进行调整,但对于那些不工作的人来说,唯一的共同点就是我从不同的网站下载它们({{3不是Project Gutenberg)。我尝试更改文件的路径,内容,权限和文件名。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

原来文件中的\ r \ n字符在某种程度上搞乱了。

更改了这一行:data=myfile.read().replace('\n', ' ')data=myfile.read().replace('\n', ' ').replace('\r', ' ')