【问题标题】:Is it possible to print linebreaks in a string in Python是否可以在 Python 中的字符串中打印换行符
【发布时间】:2014-01-10 20:01:42
【问题描述】:

我有一个字符串,我想再次编辑和打印,但保留 \n 换行符而不实际换行。举例说明;我想操作下面的字符串(连续重复 3 次)并打印它。当我打印它时,我希望它采用相同的格式(包括 \n)而不是单独的行。

"left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id\nleft join zipcode_electric_region reg ON reg.zipcode = addr.zip\nleft join carbon_conversion_factor ccf ON ccf.energy_type_id = aes.energy_type_id AND ccf.region_id = reg.region_id\nwhere (fs_stages.label = \"First Audit\" AND r.recommendation IS NOT NULL) OR (fs_stages.label = \"First Screen\" AND sppc.savings IS NOT NULL) OR (fs_stages.label = \"Queue\") OR (fs_stages.label = \"Disqualified\")\ngroup by a.analysis_id"

我不想要:

left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id
left join zipcode_electric_region reg ON reg.zipcode = addr.zip

等等……

感谢任何帮助!

【问题讨论】:

    标签: python sql string line-breaks


    【解决方案1】:

    您可以使用内置的repr 将换行符打印为\n

    >>> mystr = 'a\nb'
    >>> print mystr
    a
    b
    >>> print repr(mystr)
    'a\nb'
    >>> print repr(mystr)[1:-1] # This will get rid of the apostrophes added by repr
    a\nb
    >>>
    

    【讨论】:

      【解决方案2】:

      使用repr按原样获取'\n'并使用str.strip或切片删除repr返回的''

      >>> s = "left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id\nleft join zipcode_electric_region reg ON reg.zipcode = addr.zip\nleft join carbon_conversion_factor ccf ON ccf.energy_type_id = aes.energy_type_id AND ccf.region_id = reg.region_id\nwhere (fs_stages.label = \"First Audit\" AND r.recommendation IS NOT NULL) OR (fs_stages.label = \"First Screen\" AND sppc.savings IS NOT NULL) OR (fs_stages.label = \"Queue\") OR (fs_stages.label = \"Disqualified\")\ngroup by a.analysis_id"
      

      切片:

      >>> print repr(s)[1:-1]
      left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id\nleft join zipcode_electric_region reg ON reg.zipcode = addr.zip\nleft join carbon_conversion_factor ccf ON ccf.energy_type_id = aes.energy_type_id AND ccf.region_id = reg.region_id\nwhere (fs_stages.label = "First Audit" AND r.recommendation IS NOT NULL) OR (fs_stages.label = "First Screen" AND sppc.savings IS NOT NULL) OR (fs_stages.label = "Queue") OR (fs_stages.label = "Disqualified")\ngroup by a.analysis_id
      

      str.strip:

      >>> print repr(s).strip("'")
      left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id\nleft join zipcode_electric_region reg ON reg.zipcode = addr.zip\nleft join carbon_conversion_factor ccf ON ccf.energy_type_id = aes.energy_type_id AND ccf.region_id = reg.region_id\nwhere (fs_stages.label = "First Audit" AND r.recommendation IS NOT NULL) OR (fs_stages.label = "First Screen" AND sppc.savings IS NOT NULL) OR (fs_stages.label = "Queue") OR (fs_stages.label = "Disqualified")\ngroup by a.analysis_id
      

      第二种选择是使用str.replace并将'\n'替换为'\\n'

      >>> print s.replace('\n', '\\n')
      left join recommendation_customer_action rca ON rca.analysis_id=a.analysis_id\nleft join zipcode_electric_region reg ON reg.zipcode = addr.zip\nleft join carbon_conversion_factor ccf ON ccf.energy_type_id = aes.energy_type_id AND ccf.region_id = reg.region_id\nwhere (fs_stages.label = "First Audit" AND r.recommendation IS NOT NULL) OR (fs_stages.label = "First Screen" AND sppc.savings IS NOT NULL) OR (fs_stages.label = "Queue") OR (fs_stages.label = "Disqualified")\ngroup by a.analysis_id
      

      【讨论】:

        猜你喜欢
        • 2013-03-01
        • 2022-07-12
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 2018-10-21
        • 1970-01-01
        • 2022-12-22
        相关资源
        最近更新 更多