python的.replace会留下空行

2024-09-20 22:54:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我用scrapy从网站上提取数据。纯正的版本是这样的:

{eps: 25}
{eps:[]}
{eps:[]}
{eps:[]}
{eps: 50}
{eps:[]}
{eps:[]}
{eps:[]}
现在我不知道为什么空白的东西会出现,但是我能把它们清除掉。问题是当我使用.replace时,结果如下:

^{pr2}$

我试过.split.sub.strip都没有用。我不知道还能做什么。在

更新:

添加源代码

# coding: utf-8
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.exporter import CsvItemExporter
import re
import csv
import urlparse
from stockscrape.items import EPSItem

class epsScrape(BaseSpider):
        name = "eps"
        allowed_domains = ["investors.com"]
        ifile = open('test.txt', "r")
        reader = csv.reader(ifile)
        start_urls = []
        for row in ifile:
                url = row.replace("\n","")
                if url == "symbol":
                        continue
                else:
                        start_urls.append("http://research.investors.com/quotes/nyse-" + url + ".htm")
        ifile.close()

        def parse(self, response):
                f = open("eps.txt", "a+")
                sel = HtmlXPathSelector(response)
                sites = sel.select("//tbody/tr")
                items = []
                for site in sites:
                        item = EPSItem()
                        item['eps']  = site.select("td[contains(@class, 'rating')]/span/text()").extract()
                        strItem = str(item)
                        newItem = strItem.replace(" ","").replace("'","").replace("{eps:[","").replace("]}","").replace("u","").replace("\\r\\n",'').replace('$
                        f.write("%s\n" % newItem)
                f.close()

在文本.txt里面有个股票代码:

MSFT
A
H

以此类推


Tags: csvfromimporttxturlitemsepsitem
1条回答
网友
1楼 · 发布于 2024-09-20 22:54:24

{cd1>也包含空行。在

如果您发现最后要删除所有新行,则拆分新行并删除所有空字符串值:

outputstring = '\n'.join([line for line in inputstring.splitlines() if line.strip()])

这将删除所有空行,用新的换行符重新连接剩余的非空行。在

相反,如果您是通过打印或写入文件逐行生成输出,则当行为空时,只需不打印或写入

^{pr2}$

if语句测试包含的不仅仅是空白的行。在

相关问题 更多 >

    热门问题