Python用句点替换缩进

时间:2013-11-28 20:19:33

标签: python replace indentation

我试图用句点替换文件中的缩进,但我的脚本正在替换缩进行中的所有空格,而不仅仅是缩进。

lines = [line.strip('\n') for line in open('test0.py', 'r')]   #create line array
for l in lines:
    #print l
    data = l
    while data.startswith(" "):
        data=data.replace(data[0], ".")  #replace start of line with "."
    print data

以下是脚本错误输出的内容

import SimpleHTTPServer
import BaseHTTPServer
import ssl

class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
....def.do_GET(self):
........if.self.path.==.'/':
............self.path.=.'test.html'
........return.SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

Handler = MyRequestHandler
server = BaseHTTPServer.HTTPServer(('192.168.2.3', 8080), Handler)
server.socket = ssl.wrap_socket(server.socket, certfile='server.pem', server_side=True)
server.serve_forever()

我试图单独留下缩进线中的其余空格。

4 个答案:

答案 0 :(得分:3)

对不起,想不出一个聪明的解决方案,那怎么样:

rhs = data.lstrip()
print '.' * (len(data) - len(rhs)) + rhs

(看看顶级表现在这里可能不是非常重要)

答案 1 :(得分:3)

import re


PATTERN = re.compile(r"^( +)", re.MULTILINE)


with open("test0.py") as file:
    content = file.read()

content = PATTERN.sub(lambda m: "."*len(m.group(1)), content)
print(content)

答案 2 :(得分:1)

while循环中的行不正确地用冒号替换所有空格。

更改

data=data.replace(data[0], ".")

为:

data="."+data[1:]

答案 3 :(得分:0)

尝试:

data.replace("\t", ".")

它将用点替换所有列表的凹痕。如果一个点不够,由于制表缩进的长度始终相同,您可以增加替换调用中的点数:

data.replace("\t", ".......")