为了账号安全,请及时绑定邮箱和手机立即绑定

从 csv 读取字符串不会打印 \n

从 csv 读取字符串不会打印 \n

隔江千里 2022-08-02 15:48:35
我正在从 csv 文件中读取字符串。这些字符串包含“\n”字符来表示新行。如何使用正确的新行打印这些字符串?使用 str() 不起作用。CSV 文件只有一行:Dest, Test\n Test2\n Test3以下代码打印Test\n Test2\n Test3for ifile in files:    with open(orderPath + '\\' + ifile) as csv_file:        csv_reader = csv.reader(csv_file, delimiter=',')        for row in csv_reader:            dest = row[0]            message = row[1]            message = str(message)            print(message)
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

目前尚不清楚您希望如何解释csv文件中的数据,但这里有一个猜测。它使用 ast.literal_eval() 函数将输入数据中的转义字符转换为换行符。


这涉及将第二列括在三重双引号()字符中,以允许将其解释为Python字符串文本。如果封闭的文本本身包含引号,则使用三重引号。例如:"""Dest, Test\n "Test2"\n Test3


import ast

import csv


filename = 'one_line.csv'


with open(filename, newline='') as csv_file:

    for row in csv.reader(csv_file, delimiter=','):

        dest = row[0]

        message = ast.literal_eval('"""{}"""'.format(row[1]))

        print(dest)

        print(message)

输出:


Dest

 Test

 Test2

 Test3


查看完整回答
反对 回复 2022-08-02
?
繁花如伊

TA贡献2012条经验 获得超12个赞

如果我理解正确,您希望将输入中的文字字符“\”和“n”序列替换为换行符:

而不是:

message = str(message)

你想要:

message = message.replace('\\n', '\n')


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号