我想将 Python 多行字符串转换为单行。如果我在 Vim 中打开字符串,我可以在每行的开头看到 ^M 。如何处理字符串以使其全部位于一行中,并在每行之间使用制表符分隔。 Vim 中的示例如下所示:
Serialnumber
^MName Rick
^MAddress 902, A.street, Elsewhere
我希望它是这样的:
Serialnumber \t Name \t Rick \t Address \t 902, A.street,......
其中每个字符串都在一行中。我试过
somestring.replace(r'\r','\t')
但这不起作用。另外,一旦字符串在一行中,如果我想在字符串末尾添加换行符(UNIX 换行符?),我该怎么做?
删除了我之前的答案,因为我意识到这是错误的,我需要测试这个解决方案。
假设您正在从文件中读取此内容,您可以执行以下操作:
f = open('test.txt', 'r')
lines = f.readlines()
mystr = '\t'.join([line.strip() for line in lines])
正如ep0所说,^M代表'\r',它是Windows中的回车符。令人惊讶的是,每行的开头都会有 ^M,因为 Windows 换行符是 \r\n。行首有 ^M 表示您的文件包含 \n\r。
无论如何,上面的代码使用列表理解来循环读取的每一行test.txt
。对于每个line
in lines
, 我们称之为str.strip()
删除每行末尾的所有空格和非打印字符。最后,我们调用'\t'.join()
在结果列表中插入选项卡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)