我试图用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)。我尝试更改文件的路径,内容,权限和文件名。有什么想法吗?
答案 0 :(得分:1)
原来文件中的\ r \ n字符在某种程度上搞乱了。
更改了这一行:data=myfile.read().replace('\n', ' ')
为
data=myfile.read().replace('\n', ' ').replace('\r', ' ')