我正在编写一个与将代码注入Python代码并重新编译有关的工具。
我需要能够检测给定的源文件(或其中的功能)是否使用空格或制表符作为缩进符号。有没有简便的方法?
答案 0 :(得分:0)
您可以尝试通过换行来解析文档而不进行修剪,然后检查每行是否以空格或制表符开头,然后在检测到任何一行时立即退出?例如:
re.match(' ', line): -> space
re.match('\t', line): -> tab
或者,您可以使用startwith()方法-循环运行它,并在行首检测到制表符或空格时退出:
' foo'.startswith(('\s'))
True
' foo'.startswith(('\t'))
True
我认为一个潜在的问题是文件是否使用制表符,但是有人在输入注释(#)之前先按下空格-但我认为检测注释并忽略这些注释应该不难。