>>> reg1 = re.compile(r'[^/]*$') >>> reg2 = re.compile(r'.*/(.+)') >>> >>> class my_string(str): ... def slash_split(self): ... return self.split("/") ... >>> path=my_string('/home/test/soft/print.sh') >>> >>> commands={"split":my_string.slash_split, "os.path.basename":os.path.basename, "reg1":reg1.search, "reg2":reg2.search} >>> >>> for cmd in commands: command = commands[cmd] ... start_time = time.time() ... for i in range(1000000): ... f=command(path) ... print("%s took %f seconds" % (cmd, time.time() - start_time)) ... os.path.basename took 0.624602 seconds reg2 took 0.748091 seconds split took 0.858206 seconds reg1 took 2.544495 seconds >>>
os.path.basename всех победил! :D :D