分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Dania

运行后如何在命令提示符中删除\r\n? - How to remove \r\n in command prompt after running?

  •  -2
  • Dania  · 技术社区  · 2 周前

    每当我运行代码时。它给了我 \r\n 有空格。我用了条带功能,但不起作用。如何解决这个问题?链接如下: https://ibb.co/VtVV2fb \

    import scrapy
    from .. items import FetchingItem
    
    class SiteFetching(scrapy.Spider):
        name = 'Site'
        start_urls = ['https://www.rev.com/freelancers']
        transcription_page = 'https://www.rev.com/freelancers/transcription'
    
        def parse(self, response):
        items = {
        'Heading': response.css('#sign-up::text').extract(),
        'Earn_steps': response.css('.pb2 .lh-copy::text , .mb1::text , .mb3 .lh-copy::text').extract(), 
        }
    
        yield response.follow(self.transcription_page, self.trans_faqs, meta={'items':items})
    
        def trans_faqs(self, response):
        items = response.meta['items']
        names = {
        'name1': 'FAQ1',
        'name2': 'FAQ2', 
        }
    
        finder = {
        'find1': '#whatentailed p::text , #whatentailed .mr3::text',
        'find2': '#requirements p::text , #requirements .mr3::text',
        }
    
        for name, find in zip(names.values(), finder.values()):
            items[name] = response.css(find.strip()).extract()
        yield items
    
    1 回复  |  直到 2 周前
        1
  •  1
  •   furas    2 周前

    strip() 可以去除 \r\n 只在字符串的末尾,但不在内部。如果你有 \rn 在文本内,然后使用 text = text.replace(\r\n', '')

    看来你得到了 \rn 在由创建的列表中 extract() 所以您必须使用列表理解从列表中的每个元素中删除

    data = response.css(find).extract()
    data = [x.replace('\r\n', '').strip() for x in data]
    items[name] = data
    

    编辑: 删除空格和 \rn 在句子之间你可以 split('\r\n') 用句子创建列表。然后你可以 条() 每句话。你可以 ' '.join() 所有句子都回到一个字符串。

    text = 'Sentence 1\r\n    Sentence 2'
    
    data = text.split('\r\n')
    data = [x.strip() for x in data]
    text = ' '.join(data)
    
    print(text)
    

    同一行

    text = 'Sentence 1\r\n    Sentence 2'
    
    text = ' '.join(x.strip() for x in text.split('\r\n'))
    
    print(text)
    

    与模块相同 re

    import re
    
    text = 'Sentence 1\r\n    Sentence 2'
    
    text = re.sub('\r\n\s+', ' ', text)
    
    print(text)
    

    for name, find in zip(names.values(), finder.values()):
        data = response.css(find.strip()).extract()
        data = [re.sub('\r\n\s+', ' ', text) for text in data]
        items[name] = data