<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>I agree that this has been a bit of a wart for a long time.</div><div><br></div><blockquote type="cite"><div><div dir="ltr"><div>While the old “let’s treat strings as paths” modules are split up like you said, pathlib can do what they do and more: <a href="https://docs.python.org/3/library/pathlib.html">https://docs.python.org/3/library/pathlib.html</a></div></div></div></blockquote><div><br></div><div>Exactly -- this is The Solution. It combines paths themselves with things you are likely to do with paths.</div><div><br></div><div>It may well lack some nice features. If so, suggestions for that would be the way to go.</div><div><br></div><div>The usefulness of pathlib has been hampered by the fact that path objects couldn't be used in many stdlib functions. However, that has been remedied in 3.6:</div><div><br></div><div><ul class="simple"><li style="text-align:start;line-height:32px"><span style="background-color:rgba(255,255,255,0)">A new <a class="reference internal" href="https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep519" style="text-decoration:none">file system path protocol</a> has been implemented to support <a class="reference internal" href="https://docs.python.org/3/glossary.html#term-path-like-object" style="text-decoration:none">path-like objects</a>. All standard library functions operating on paths have been updated to work with the new protocol.</span></li></ul><div>So we have a nice way forward.</div></div><div><br></div><div>-CHB</div><div><br></div><div><br></div><br><blockquote type="cite"><div><div dir="ltr"><div><br></div><div>It’s also prettier and easier to use, especially when using autocompletion (just type “<a href="http://path.is">path.is</a><tab>” and see what you can test the path for)</div><div><br></div><div>Best, Philipp</div></div><br><div class="gmail_quote"><div dir="ltr">George Fischhof <<a href="mailto:george@fischhof.hu">george@fischhof.hu</a>> schrieb am Do., 12. Jan. 2017 um 10:06 Uhr:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Hi There,<br class="gmail_msg">
<br class="gmail_msg">
OS related file operations (copy, move, delete, rename...) should be placed into one module...<br class="gmail_msg">
As it quite confusing that they are in two moduls (os and shutil).<br class="gmail_msg">
<br class="gmail_msg">
I have read that one is higher level than other, but actually to use 
them I have to think which function can be found in which module.<br class="gmail_msg">
<br class="gmail_msg">
It is confuse for beginners, and makes the usage more complex instead of make it more simple (as Zen of Python says ;-) )<br class="gmail_msg">
<br class="gmail_msg">
An alias could good, not to cause incompatibility.<br class="gmail_msg">
<br class="gmail_msg">
Best regards,<br class="gmail_msg">
George</div>
_______________________________________________<br class="gmail_msg">
Python-ideas mailing list<br class="gmail_msg">
<a href="mailto:Python-ideas@python.org" class="gmail_msg" target="_blank">Python-ideas@python.org</a><br class="gmail_msg">
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br class="gmail_msg">
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" class="gmail_msg" target="_blank">http://python.org/psf/codeofconduct/</a></blockquote></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Python-ideas mailing list</span><br><span><a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a></span><br><span><a href="https://mail.python.org/mailman/listinfo/python-ideas">https://mail.python.org/mailman/listinfo/python-ideas</a></span><br><span>Code of Conduct: <a href="http://python.org/psf/codeofconduct/">http://python.org/psf/codeofconduct/</a></span></div></blockquote></body></html>