2011-10-13 30 views
0

我得到这个奇怪的问题,而在csv文件中存储结果。奇怪的行为,同时存储csv文件

summary = site.select('.//*[contains(@class, "summary")]/p/text()').extract() 
description = "" 
        while (len(summary) != 0): 

         description = description + summary.pop(0).encode('utf-8') 
        description = str(description) 

        item['Description'] = description 

所以我很关心描述列。我以csv格式提取这些结果。如果我在Excel中打开它,结果显示正常。但是,当我用写字板打开它时,我可以看到,对于少数描述数据,str在字符串的开始和结尾处具有双引号,而对于某些情况,没有双引号。

任何想法为什么这样奇怪的行为

+0

刚打印出通过代码来所有描述?这个问题缺乏关于如何重复这个问题的背景,因此不能在这里回答。 –

+0

给出一个文本文件来测试 – warvariuc

回答

2

这不是奇怪的行为,它是相当期待。写字板是一个文字处理器,不会尝试解释您的.CSV文件,而不会比.TXT文件。文件中的每一行都被视为一行文本。不过,Excel会将逗号(或分号,取决于区域设置)解释为字段分隔符。它还将“双引号”解释为防止包含分隔符的字段被切断的机制。例如:

文件:

Tom, Dick, and Harry,en 
Zhang san, Li si,zh 
"Tom, Dick, and Harry",en 
"Zhang san, Li si",zh 

由于装载用Excel:

A      B  C   D 
Tom     Dick and Harry en 
Zhang san    Li si zh 
Tom, Dick, and Harry en 
Zhang san, Li si  zh