2011-10-07 36 views
1

我们有很多的文件与丑陋的import语句是这样的:修复Python导入风格的实用工具?

from project.foo import a, b 
from project.foo import c 
from project.bar import d, e, f, g 

是否存在的东西,将它们全部更改为每行一个进口?

from project.foo import a 
from project.foo import b 
from project.foo import c 
from project.bar import d 
from project.bar import e 
from project.bar import f 
from project.bar import g 

澄清:这样做的原因是为了保持一贯的风格,像Google's style guide for Python

+3

为什么你要每行一个进口? –

+4

不要把Java习惯带到Python – JBernardo

+0

我同意JBernardo。我在工作中做java,并且讨厌这个。不必要的垃圾。 – zengr

回答

7

PEP8 style guide

进口

- Imports should usually be on separate lines, e.g.: 

    Yes: import os 
     import sys 

    No: import sys, os 

    it's okay to say this though: 

    from subprocess import Popen, PIPE 

所以,我认为你应该做你是什么,不应该将它们分割。我不知道有任何效用会为你做到这一点。

而且,如果:

project.bar包含说:d,e,f,g,x,y,z那么我会说只是做了import project.bar,代码将大大减少,容易对眼睛。

+2

作为一个说明,我会建议OP导入'project.bar',其中'import project.bar as bar'并使用'bar.d','bar.e'等。 – brandizzi

+1

+1,看起来更清洁: ) – zengr

0

的sed可以做到这一点是这样的(测试第一,因为我没有我的Linux机器的时刻来测试它的访问):

sed -i".backup" 's/from ([^ ]+) import ([^,]+), ([^,]+)/from \1 import \2\nfrom \1 import \3/' *.py 
+0

Hmm:'s'命令的RHS上的'sed:-e表达式#1,字符76:无效引用\ 3 –