擅长:python、mysql、java
<p>如果您不想使用<code>os.chmod</code>并希望使用适当的权限创建文件,则可以使用<a href="https://docs.python.org/3/library/os.html#os.open" rel="noreferrer">^{<cd2>}</a>创建适当的文件描述符,然后使用<code>open</code>创建描述符:</p>
<pre><code>import os
# The default umask is 0o22 which turns off write permission of group and others
os.umask(0)
with open(os.open('filepath', os.O_CREAT | os.O_WRONLY, 0o777), 'w') as fh:
fh.write(...)
</code></pre>
<p><strong>Python 2注意:</strong></p>
<p>Python2.x中的内置<a href="https://docs.python.org/2/library/functions.html#open" rel="noreferrer">open()</a>不支持按文件描述符打开。改用<a href="https://docs.python.org/2/library/os.html#os.fdopen" rel="noreferrer">^{<cd4>}</a>;否则,您将得到:</p>
<pre><code>TypeError: coercing to Unicode: need string or buffer, int found.
</code></pre>