填充制表符直到列的最大长度

2024-06-23 03:02:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个以制表符分隔的txt

11 22 33 44
53 25 36 25
74 89 24 35 and

但44和25之后没有“标签”。所以第一行和第二行有4列,第三行有5列。你知道吗

要重写它以便显示选项卡

11\t22\t33\t44
53\t25\t36\t25
74\t89\t24\t35\tand 

我需要有一个工具来批量添加标签,其中没有条目。你知道吗

如果列的最大长度是n(在上面的示例中n=5),那么我希望填充制表符,直到所有行的第n列

11\t22\t33\t44\t
53\t25\t36\t25\t
74\t89\t24\t35\tand

我试着用notepad++,python用替换代码,比如

     map_dict = {'':'\t'}

但我似乎需要更多的逻辑来做这件事。你知道吗


Tags: and工具txt标签选项卡制表符t24t22
2条回答

如果我理解正确的话,您可以在Notepad++中通过以下方法实现这一点:

enter image description here

是的,如果有几个文件要执行此操作,可以将其记录为宏,并将其绑定到键上作为快捷方式

我假设您的文件也包含换行符,所以它实际上是这样的:

11\t22\t33\t44\n
53\t25\t36\t25\n
74\t89\t24\t35\tand\n

如果确定列的最大长度为5,则可以这样做:

with open('my_file.txt') as my_file:
  y = lambda x: len(x.strip().split('\t'))
  a = [line if y(line) == 5 else '%s%s\n' % (line.strip(), '\t'*(5 - y(line)))
       for line in my_file.readlines()]

# ['11\t22\t33\t44\t\n', '53\t25\t36\t25\t\n', '74\t89\t24\t35\tand\n']

这将添加结束制表符,直到您达到5列。您将得到一个需要写回文件的行的列表(我有'my\u file2.txt',但如果您愿意,您可以写回原始行)。你知道吗

with open('my_file2.txt', 'w+') as out_file:
  for line in a:
    out_file.write(line)

相关问题 更多 >

    热门问题