python自动归类代码文件到vs工程筛选器(.vcxproj.filters)
import sys
import os
def FromLineGetValue(line: str, head: str, tail: str) -> dict:
pos = line.find(head)
if pos == -1:
return False, ''
pos += len(head)
pos1 = line.find(tail, pos)
if pos1 == -1:
return False, ''
return True, line[pos:pos1]
if __name__ == '__main__':
filter_file = 'path\\xxx.vcxproj.filters'
filter_lines = []
with open(filter_file, mode='r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
if line.find('/>') == -1:
filter_lines.append(line)
continue
has, include = FromLineGetValue(line, 'Include="', '"')
if not has or len(include) == 0:
filter_lines.append(line)
continue
path = os.path.dirname(include)
if len(path) == 0:
filter_lines.append(line)
continue
if line.find('ClCompile') != -1:
filter_lines.append(' <ClCompile Include="%s">\r' % include)
filter_lines.append(' <Filter>%s</Filter>\r' % path)
filter_lines.append(' </ClCompile>\r')
else:
filter_lines.append(' <ClInclude Include="%s">\r' % include)
filter_lines.append(' <Filter>%s</Filter>\r' % path)
filter_lines.append(' </ClInclude>\r')
f.close()
with open(filter_file, mode='w', encoding='utf-8') as f:
f.writelines(filter_lines)
f.close()
sys.exit(0)
版权声明:本文为本站原创文章,转载请注明出处,非常感谢,如版权漏申明或您觉得任何有异议的地方欢迎与本站取得联系。