Pku*_*ury 3 python string performance path
我被告知os.path.joinpython中的速度非常慢,我应该使用字符串连接('%s/%s' % (x, y))代替.是否真的存在很大差异?如果是这样,我该如何跟踪它?
mar*_*cog 12
$ python -mtimeit -s 'import os.path' 'os.path.join("/root", "file")'
1000000 loops, best of 3: 1.02 usec per loop
$ python -mtimeit '"/root" + "file"'
10000000 loops, best of 3: 0.0223 usec per loop
Run Code Online (Sandbox Code Playgroud)
所以是的,它慢了近50倍.虽然1微秒仍然没有,所以我真的不会考虑差异.使用os.path.join:它是跨平台的,更具可读性,更不容易出错.
编辑:两个人现在评论说import解释了差异.这不是真的,因为-s它是设置标志,因此import不会在报告的运行时中考虑因素.阅读文档.
我不知道是谁告诉你不要使用它,但他们错了.
os.path.join无论平台如何,都将始终正确连接路径.join在做什么.人们可能不得不为路径的字符串连接做双重操作.