Python:检索由文本文件上的缩进限定的子字符串

Python: retrieve substring bounded by indentations on a text file

我什至无法识别带有 Python 的文本文件上的缩进(按 Tab 键时出现的缩进)。我认为使用拆分功能会有所帮助,但似乎必须有一个可以充当 'separator'.

的物理角色

这是文本示例,我在其中尝试检索字符串 'John'。假设空格是缩进:

15:50:00    John    1029384

感谢所有帮助!谢谢!

制表符由 \t 表示。有关更长的列表,请参阅 https://www.w3schools.com/python/gloss_python_escape_characters.asp

所以我们可以这样做:

s = "15:50:00   John    1029384"
s.split("\t") # Output: ['15:50:00', 'John', '1029384']

如果您知道正则表达式,那么您可以使用前瞻和后视,如下所示:

import re
re.search("(?<=\t).*?(?=\t)", s)[0] # Output: "John"

显然,这两种方法都需要通过考虑边缘情况和错误处理来变得更加健壮(例如,如果字符串中的制表符少于或多于两个,会发生什么情况——您如何识别在那种情况下的名字?)

根据您用于创建文件的程序,当您按 TAB 时实际插入的内容可能是制表符 (\t) 或一系列空间。

你认为 split() 是一种做你想做的事情的方法,实际上是正确的。如果您不向它传递任何参数,它会将一系列空格和制表符视为单个分隔符:

s = "15:50:00   John    1029384"
t = "15:50:00\tJohn\t1029384"

s.split() # Output: ['15:50:00', 'John', '1029384']
t.split() # Output: ['15:50:00', 'John', '1029384']