Python 读取csv的某行

论坛 期权论坛     
选择匿名的用户   2021-6-2 18:03   338   0
<p style="margin-top:5px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif; font-size:14px"> 假设CSV文件内容如下:</p>
<pre style="margin-top:0px; margin-bottom:0px; padding:0px; color:rgb(51,51,51); font-size:14px; background-color:rgb(255,255,255)"><code class="hljs" style="margin:15px 0px; padding:0.5em; font-family:Consolas,&#34;Courier New&#34;,&#34;Lucia Console&#34;,monospace,sans-serif; display:block; border:1px solid rgb(204,204,204); background:rgb(253,246,227); overflow-x:auto; color:rgb(101,123,131)">No.,Name,Age,Score
1,Apple,12,98
2,Ben,13,97
3,Celia,14,96
4,Dave,15,95
</code></pre>
<p style="margin-top:5px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif; font-size:14px"> 保存为“A.csv“,利用Python自带的 <a href="https://docs.python.org/2/library/csv.html" rel="noopener noreferrer" style="margin:0px; padding:0px; color:rgb(119,153,51); word-break:keep-all" target="_blank">csv模块</a> ,有两种方法可以实现提取其中的一行:</p>
<h4 style="margin:20px 0px 15px; padding:0px; font-size:20px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif"> 方法一:reader</h4>
<p style="margin-top:5px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif; font-size:14px"> 第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:</p>
<pre style="margin-top:0px; margin-bottom:0px; padding:0px; color:rgb(51,51,51); font-size:14px; background-color:rgb(255,255,255)"><code class="hljs python" style="margin:15px 0px; padding:0.5em; font-family:Consolas,&#34;Courier New&#34;,&#34;Lucia Console&#34;,monospace,sans-serif; display:block; border:1px solid rgb(204,204,204); background:rgb(253,246,227); overflow-x:auto; color:rgb(101,123,131)"><span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">import</span> csv
<span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">with</span> open(<span class="hljs-string" style="margin:0px; padding:0px; color:rgb(42,161,152)">&#39;A.csv&#39;</span>,<span class="hljs-string" style="margin:0px; padding:0px; color:rgb(42,161,152)">&#39;rb&#39;</span>) <span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">as</span> csvfile:
    reader &#61; csv.reader(csvfile)
    rows &#61; [row <span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">for</span> row <span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">in</span> reader]
<span class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(133,153,0)">print</span> rows
</code></pre>
<p style="margin-top:5px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif; font-size:14px"> 得到:</p>
<pre style="margin-top:0px; margin-bottom:0px; padding:0px; color:rgb(51,51,51); font-size:14px; background-color:rgb(255,255,255)"><code class="hljs json" style="margin:15px 0px; padding:0.5em; font-family:Consolas,&#34;Courier New&#34;,&#34;Lucia Console&#34;,monospace,sans-serif; display:block; border:1px solid rgb(204,204,204); background:rgb(253,246,227); overflow-x:auto; color:rgb(101,123,131)">[[&#39;No.&#39;, &#39;Name&#39;, &#39;Age&#39;, &#39;Score&#39;],
[&#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">1</span>&#39;, &#39;Apple&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">12</span>&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">98</span>&#39;],
[&#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">2</span>&#39;, &#39;Ben&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">13</span>&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">97</span>&#39;],
[&#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">3</span>&#39;, &#39;Celia&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">14</span>&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">96</span>&#39;],
[&#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">4</span>&#39;, &#39;Dave&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">15</span>&#39;, &#39;<span class="hljs-number" style="margin:0px; padding:0px; color:rgb(42,161,152)">95</span>&#39;]]
</code></pre>
<p style="margin-top:5px; margin-bottom:5px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:&#34;Trebuchet MS&#34;,Helvetica,Tahoma,宋体,Arial,Verdana,sans-serif; font-size:14px"> 要提取其中第二行,可以用下面的代码:</p>
<pre style="margin-top:0px; margin-bottom:0px; padding:0px; color:rgb(51,51,51); f
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP