回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>假设我有两个csv文件:</p>
<p><code>csvfile1</code>:</p>
<pre><code>name Dept City
sree, CSE, Bengaluru,
vatsasa, ECE, Hyd,
IT, VJA,
capini, Mech, TPTY,
DTP, Civil,kandra
Bengaluru,ECM, TVM,
sre, ECS, MNGL,
vatsas, Kochi,
Nano, TVM,
capmin, Tech,
DTP9, CSS, Kochi,
ESS, TVM,
sree0, RSS, MNGL,
</code></pre>
<p><code>csvfile2</code>:</p>
<pre><code>name, Dept, City, Address
</code></pre>
<p>我想检查<code>csvfile2</code>中存在的<code>csvfile1</code>的所有列。你知道吗</p>
<ol>
<li><p>如果存在,请检查<code>csvfile1</code>中的任何一列是否包含空格。如果存在空格,则用值<code>NULL</code>替换空格,并按列将所有列写入新的csv文件<code>csvfile3</code>。</p></li>
<li><p>如果不存在,则将缺少的列与现有列一起写入<code>csvfile3</code>。此外,那些缺少的列的值应在<code>csvfile3</code>中显示为<code>NULL</code>,并且现有列下的空格应替换为<code>NULL</code></p></li>
</ol>
<p>预期输出如下:</p>
<pre><code>name Dept City Address
sree, CSE, Bengaluru,NULL
vatsasa, ECE, Hyd, NULL
NULL, IT, VJA, NULL
capini, NULL, Mech, NULL
DTP, Civil,NULL, NULL
Bengaluru,ECM, TVM, NULL
sre, ECS, MNGL, NULL
vatsas, NULL, Kochi, NULL
NULL, Nano, TVM, NULL
capmin, NULL, Tech, NULL
DTP9, CSS, Kochi, NULL
NULL, ESS, TVM, NULL
sree0, RSS, MNGL, NULL
</code></pre>
<p>我编写了以下代码:</p>
<pre><code>f=open('csvfile2.csv', 'r')
g=csv.reader(f)
first=next(g, None)
print('lenght of first list', len(first))
f1=open('csvfile1.csv','r')
h=csv.reader(f1)
second=next(h,None)
print('lenght of first list', len(second))
f2=open('csvfile3', 'w')
writer=csv.writer(f2)
count=0
if len(second) < len(first):
for i in first:
if not i in second:
for count in range:
writer.writerows('Null')
print('null')
else:
ind=second.index(i)
for j in second:
if not j[ind]:
writer.writerows(j[ind].replace(' ','Null'))
else:
writer.writerows(j[ind])
</code></pre>
<p>以上代码输出:</p>
<pre><code>name, Dept, City, Address
N
U
L
L
N
U
L
L
N
U
L
L
N
U
L
L
N
U
L
L
</code></pre>
<p>我已经在awsec2实例上编写了代码,并计划在awslambda上也使用同样的代码。你知道吗</p>