<p>您正在对<a href="https://docs.python.org/2/library/string.html#string.replace" rel="nofollow">^{<cd2>}</a>(返回<code>str</code>对象的函数)的返回值调用<a href="https://docs.python.org/2/library/stdtypes.html#str.replace" rel="nofollow">^{<cd1>}</a>(方法)。你知道吗</p>
<p>只需使用以下方法:</p>
<pre><code>new_filename = filename.replace("2x", "@3x").replace("-lanczos3", "")
</code></pre>
<p>错误源于<code>str.replace()</code>的第三个参数,该参数必须是限制替换次数的整数。你基本上做到了:</p>
<pre><code>'somestring'.replace(thingto_replace, "-lanczos3", "")
</code></pre>
<p>其中<code>""</code>参数不是整数。你知道吗</p>
<p>您可以对<code>string.replace()</code>执行相同的操作,但是必须将一个调用的结果作为另一个调用的第一个参数传入:</p>
<pre><code>new_filename = string.replace(string.replace(filename, "2x", "@3x"), "-lanczos3", "")
</code></pre>
<p>但是,您不想这样做,因为<code>string</code>函数已被弃用;请参见<a href="https://docs.python.org/2/library/string.html#deprecated-string-functions" rel="nofollow">documentation</a>:</p>
<blockquote>
<p>The following list of functions are also defined as methods of string and Unicode objects; see section String Methods for more information on those. You should consider these functions as deprecated, although they will not be removed until Python 3. </p>
</blockquote>
<p>该部分中的任何函数都具有直接在<code>str</code>类型本身上可用的等效方法。你知道吗</p>