如何将所有逗号替换为逗号加空格(pep8)?
我写了一些Python代码,但不小心在逗号后面忘了加几个空格(我在努力遵循Pep8规范)。我想把逗号替换成后面跟着空格的逗号。问题是,有些逗号后面已经有空格了,所以如果我简单地搜索并替换,可能会出现一些逗号后面跟着两个空格的情况。而如果我把两个空格替换成一个空格,那我的制表符(会被转换成空格)就会乱掉。
我想找合适的vim命令,如果可以的话,也想找合适的unix命令。我这么做是为了遵循pep8规范。有没有什么工具可以自动修正这些风格错误以符合pep8?我找到了一些模块可以识别错误,但它们并不能修复这些错误。
4 个回答
2
关于自动纠正错误的工具,autopep8 是个不错的选择。它自带一个可以直接用来修正错误的程序,不过我不太清楚怎么把它和 vim 结合起来使用。
5
Python 解决方案:
my_new_string = my_old_string.replace(',', ', ').replace(', ', ', ')
如果你想在一个文件上运行这个:
f = open('path/to/file')
my_file_contents = f.read()
f.close()
f = open('path/to/file', 'w')
f.write(file_contents.replace(',', ', ').replace(', ', ', '))
vim
解决方案:
:%s/,\ */,\ /g
2
vim 替换:
:%s/,\([^ ]\)/, \1/g
在 []
字符类中的开头加上 ^
,意思是“不是这个”。所以 [^ ]
就是匹配任何不是空格的东西。
补充说明,之前是删除空格后的内容。\(\)
用来保存一些内容,而 \1
则是把保存的内容拿出来。