<p>输入文件的内容:</p>
<pre><code>"Roll No" English read Science
"Roll No" English Write Science
</code></pre>
<p><strong>代码有问题:</strong></p>
<ol>
<li>如<strong>@Scott所述,文件未关闭。你知道吗</li>
<li><p>您正在按<code>for string in row:</code>读取单元格,并在那里替换字符串。但在替换之后,您正在将该单元格作为行写入文件中。例如,输出文件和代码文件:</p>
<p>卷号</p>
<p>英语</p>
<p>阅读</p>
<p>科学</p></li>
</ol>
<p>这是由于上述原因,即您正在写入每个单元格。你知道吗</p>
<p><strong>如何让它工作?</strong></p>
<p><em>与代码内联的注释</em></p>
<pre><code>import csv
input_file = open('mark.csv', 'r', encoding='utf-8')
output_file = open('result.csv', 'w')
writer = csv.writer(output_file , delimiter=' ', encoding='utf-8')
reader = csv.reader(input_file)
for row in reader:
#Initailize empty list for each row
data = []
for string in row:
#Replace and add to data list
data.append(string.replace('read','write'))
#Now write complete
writer.writerow(data)
input_file.close()
output_file.close()
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>"Roll No" English write Science
"Roll No" English Write Science
</code></pre>
<p>您可以在没有<code>csv</code>模块的情况下实现相同的功能。你知道吗</p>
<pre><code>with open("mark.csv") as input_file:
with open("result.csv",'w') as output_file:
for line in input_file:
new_line = (line.replace("read","write")).replace(","," ")
output_file.write(new_line)
</code></pre>