我试图用句点替换文件中的缩进,但我的脚本正在替换缩进行中的所有空格,而不仅仅是缩进。
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()
我试图单独留下缩进线中的其余空格。
答案 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", ".......")