首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csv.writer用引号将字符串写入文件,而不是实际的字符串。

csv.writer用引号将字符串写入文件,而不是实际的字符串。
EN

Stack Overflow用户
提问于 2017-02-21 08:52:54
回答 1查看 1.4K关注 0票数 1

我正试着写一份清单归档。csv.writer用引号编写字符串,即使它们周围没有引号。我使用.strip将引号取出来,当我通过打印检查时,它的打印效果很好。

代码语言:javascript
复制
# -*- coding: utf-8 -*-

'''
##############################################################################
Scrape wiki pages with localities in the US.
'''

import requests
from bs4 import BeautifulSoup
import csv

# list of all links to scrape:

linkList = [
            'https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Alabama',

]

def scrapeSite():
    scrape = []    
    for link in linkList:
        
        #inside location
        page = requests.get(link)   
        soup = BeautifulSoup(page.text, "lxml")

        table = soup.find_all(scope="row")
        for el in table:
            title = el.find('a')
            try:
                loc = []
                string = title['title'].strip('"')
                loc.append(string)
                scrape.append(loc)
            
            except TypeError:
                pass
          
    return scrape



filename = 'localities.csv'

scrape = scrapeSite()

def saveFile(scrape, filename):

    with open(filename, 'wb') as csvfile:
            
            writer = csv.writer(csvfile, delimiter=',',)
       
            writer.writerow(['Name']) 
            for loc in scrape:  
                writer.writerow(loc)


if __name__ == '__main__':
    saveFile(scrape, filename)
EN

回答 1

Stack Overflow用户

发布于 2017-02-21 09:44:52

若要只在绝对需要时发出引号,请在创建作者时添加csv.QUOTE_MINIMALcsv.QUOTE_NONE参数:

代码语言:javascript
复制
writer = csv.writer(csvfile, delimiter=',',csv.QUOTE_MINIMAL)

对于作者来说,有细微的差别,但在基本用法上,它们是一样的:

csv.QUOTE_MINIMAL指示编写器对象只引用那些包含特殊字符的字段,例如分隔符、商标符或行终止符中的任何字符。 csv.QUOTE_NONE :指示编写器对象不要引用字段。当输出数据中出现当前分隔符时,它前面是当前转义符字符。如果未设置转义符,则如果遇到任何需要转义的字符,则写入器将引发错误。

即使csv.QUOTE_NONE在必须引用数据时也会发出引号(例如:数据中的引号),如果不能转义,这将使csv不可读。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42362632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档