python 将多行转换为单行

2023-11-24

我想将 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(使用前将#替换为@)

python 将多行转换为单行 的相关文章

随机推荐