蟒蛇阅读整个段落而不是读线

问题描述:

这里是我的代码:蟒蛇阅读整个段落而不是读线

with open(root_dir+"/trials/classify/training_queries.txt","r") as f: 
     queries = f.readlines() 
     #queries = f.read() 

上面的代码从文件中读取一行内容系,并给出结果的每一行我的情况。

我想显示整个文件内容的结果(一次读取整个段落),那是什么功能?

我认为queries = f.read()将帮助,但它考虑字符的性格。

更新

样本输入:

Hell, the Orioles' Opening Day game could easily be the largest in history 
if we had a stadium with 80,000 seats. But unfortunely the Yards (a 
definitely excellent ballpark) only holds like 45,000 with 275 SRO spots. 
Ticket sales for the entire year is moving fast. Bleacher seats are almost 
gone for every game this year. Athist does not believe in any religion whether hinduis islam or chirstianism 

输出方案:

一行readline() - 由行

我想要做的是什么东西加工生产线正在考虑整个文件内容。

代码片段:

if __name__ == '__main__': 
    #CallDomainDetection().callDomainDetection(sys.argv[1]) 
    root_dir = os.getcwd() 
    query_no = 1 
    with open(root_dir+"/trials/classify/training_queries.txt","r") as f: 
     #queries = f.readlines() # this processes line in files 
     queries = f.read() # now it consider each character. 
    for qu in queries: 
     CallDomainDetection().callDomainDetection(qu) 
     if query_no == 40: 
      break 
     query_no += 1 
+0

请张贴一些示例输入和期望输出。 – 2014-09-02 07:47:21

+0

从你的问题看来,该文件只包含一个段落。真的吗? – 2014-09-02 08:00:54

+0

@TimPietzcker:我添加了文件内容和代码片段。 – user123 2014-09-02 08:03:37

f.read()是你想要的。您可能需要将其拆分为两条换行符,将其分成几段 - split('\n\n')。你所描述的听起来像是你迭代字符串本身 - 这将意味着char迭代。

+0

? 'queries = f.readlines() for p in paragraph(queries.split('\ n \ n')):print repr(p)' – user123 2014-09-02 08:32:35

+1

'queries = f.read()。split('\ n \ n ')' - 如果段落意味着我的意思。你还没有定义你的意思。 – WeaselFox 2014-09-02 08:35:38

queries = f.read()没有将整个文件读入字符串queries。只有在迭代该字符串时,才会得到单个字符(如for c in queries:)。

with open(root_dir+"/trials/classify/training_queries.txt","r") as f: 
    queries = f.read() 
    print(queries) 

,看到queries是一个字符串。

+0

谢谢,但是我已经提到了。这里考虑每个字符的处理 – user123 2014-09-02 08:33:34

+0

@ user123:请重新阅读我的答案的第二句。 for循环将你的段落('queries')分成单个字符('qu')。拥有'.read()'文件后,直接删除'for'循环并处理'queries'。你的意思是 – 2014-09-02 08:57:04

您必须定义一个“段落”作为通过加入一个非空的非分隔线序列形成的字符串,由非空的分隔线序列与任何相邻的段落分开。

def paragraphs(lines, is_separator=str.isspace, joiner=''.join): 
    paragraph = [ ] 
    for line in lines: 
    if is_separator(line): 
     if paragraph: 
     yield joiner(paragraph) 
     paragraph = [ ] 
    else: 
     paragraph.append(line) 
    if paragraph: 
     yield joiner(paragraph) 
if __name__ == '__main__': 
with open(root_dir+"/trials/classify/training_queries.txt","r") as f: 
    queries = f.readlines() 
    for p in paragraphs(queries): print repr(p) 
+0

非常感谢,但它给段错误(查询错误。splitlines(True)): AttributeError:'list'对象没有属性'splitlines'' – user123 2014-09-02 08:16:47

+1

well com。我会尽快编辑! – Kasramvd 2014-09-02 08:35:13

+0

我编辑试试!并给我结果pls – Kasramvd 2014-09-02 08:44:49