在整个文本文件 python 中将 space 替换为制表符

Replace space with tab in entire text file python

我有一个包含连续空格的文本文件,我需要用制表符替换它们

这是文件的一部分:

这是我需要的样子:

我需要使用 python 代码或任何简单快捷的方法来完成它 ^_^

如果你使用unix操作系统你可以使用sed:

sed -r 's/[[:space:]]+/\t/g' input > output.txt

根据您的要求,这里有一个 python 的解决方案:

filepath_in = 'path/to/my/filein.txt'
filepath_out = 'path/to/my/fileout.txt'
with open(filepath_in, 'r') as file_in, open(file_path_out, 'w') as file_out:
    for line in file_in:
        data = line.split()  # splits the content removing spaces and final newline
        line_w_tabs = "\t".join(data) + '\n'
        file_out.write(line_w_tabs)

请注意,如果 cell 数据的内容与同一 column 中的其他数据相比较长,则一个选项卡可能不够用,您的 table 可能也不够排列整齐。

如果布局很重要,您需要一些操作,您可以考虑使用 python format 甚至一些库。

假设,原始文件名为demo.txt,内容如下所示。

$ cat "demo.txt"

id name  work address
1 sam google USA
2 raman facebook Europe

读取文件并将所有行存储在列表中。 找到最长的单词以保持所有列之间的偶数 space。 “ljust”用于证明单词的合理性(以保持值之间的偶数 spaces)

下面是代码片段。

>>> file = "demo.txt"
>>> f = open(file, "r")
>>> data = f.readlines()
>>> col_width = max(len(word) for row in data for word in row.split()) + 2  # padding
>>> for row in data:
...     print "".join(word.ljust(col_width) for word in row.split())
...

id         name       work         address
1          sam        google       USA
2          raman      facebook     Europe