<p>如果零件文件足够小,可以放入内存中,可以通过将其加载到字典(高效、快速的访问数据结构)中来加快速度。当您在<code>file2</code>中循环时,您正在查找一行<code>row[2] == partnumber</code>,然后(可能)使用<code>row[4]</code>,因此<code>row[2]</code>作为键,<code>row[4]</code>作为值的字典将使查找非常快:</p>
<pre><code>parts = {}
with [however you open CSV 2] as f:
for row in f:
parts[row[2]] = row[4]
</code></pre>
<p>然后,不要每次都重新打开该文件,只需执行以下操作:</p>
<pre><code>data = parts[partnumber]
</code></pre>
<hr/>
<p>编辑:您还可以做一些其他事情来改进代码:</p>
<ul>
<li>考虑遵循<a href="https://www.python.org/dev/peps/pep-0008/" rel="nofollow noreferrer">PEP8</a>,因为这样会使其他人更容易阅读您的代码。有一堆以大写字母开头的变量,这会让网站上突出显示的语法误以为它们是类。你知道吗</li>
<li><p>使用<code>True</code>和<code>False</code>表示布尔值,而不是字符串“Y”和“N”。你知道吗</p>
<pre><code>part_exists = False
if some_condition:
part_exists = True
if part_exists:
selected_object = "X" # not clear what this does so I'm not messing with it
</code></pre></li>
<li><p>将数组拆分为变量时,可以更轻松地执行以下操作:</p>
<pre><code>for row4 in r4:
file1, file1Del, file1titles, file1PartNumber = row
</code></pre></li>
<li><p>您需要重复大量代码来处理一行、两行、三行和四行的情况。考虑在这里使用循环和列表。它还可以让你摆脱那种<code>eval</code>。</p></li>
</ul>
<p>这看起来像是无谓的吹毛求疵,但不太重复的代码更容易改进。你知道吗</p>