![](/img/trans.png)
[英]When I write to a CSV file in Python, it copies part of the last row and writes it to the bottom of the file
[英]Python writes part of a string into a csv row
我正在尝试将标记的所有匹配项写入Python中的csv文件中。 我的字符串是:
<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@CDIUI</span>(<span class="string"><span class="delimiter">"</span><span class="content">cdievents</span><span class="delimiter">"</span></span>)
<span class="annotation">@Theme</span>(<span class="string"><span class="delimiter">"</span><span class="content">valo</span><span class="delimiter">"</span></span>)
<span class="directive">public</span> <span class="type">class</span> <span class="class">CDIEventUI</span> <span class="directive">extends</span> UI {
<span class="annotation">@Inject</span>
InputPanel inputPanel;
<span class="annotation">@Inject</span>
DisplayPanel displayPanel;
<span class="annotation">@Override</span>
<span class="directive">protected</span> <span class="type">void</span> init(VaadinRequest request) {
Layout content =
<span class="keyword">new</span> HorizontalLayout(inputPanel, displayPanel);
setContent(content);
}
}</code></pre>
我的将匹配写入CSV文件的python代码是:
hits = soup.find_all("pre", "CodeRay highlight")# "programlisting")
f = open('extractedsuorceTEST2.csv','ab')
writer = csv.writer(f)
writer.writerow(('page', hits[0].text.encode('UTF-8').replace('Â',' ')))
通过此代码,hits [0]为:
'@CDIUI("cdievents")\n@Theme("valo")\npublic class CDIEventUI extends UI {\n @Inject\n InputPanel inputPanel;\n\n @Inject\n DisplayPanel displayPanel;\n\n @Override\n protected void init(VaadinRequest request) {\n Layout content =\n new HorizontalLayout(inputPanel, displayPanel);\n setContent(content);\n }\n}'
但是写在csv文件中的结果是:
@CDIUI(""cdievents"")
@Theme(""valo"")
public class CDIEventUI extends UI {
@Inject
InputPanel inputPanel;
@Inject
DisplayPanel displayPanel;
@Override
protected void init(VaadinRequest request) {
Layout content =
什么时候应该:
@CDIUI("cdievents")
@Theme("valo")
public class CDIEventUI extends UI {
@Inject
InputPanel inputPanel;
@Inject
DisplayPanel displayPanel;
@Override
protected void init(VaadinRequest request) {
Layout content =
new HorizontalLayout(inputPanel, displayPanel);
setContent(content);
}
}
有人可以提出解决方案吗? 谢谢
您必须小心,不要仅仅放弃文件或CSVWriter对象。
尝试将您的代码更改为
hits = soup.find_all("pre", "CodeRay highlight")# "programlisting")
with open('extractedsuorceTEST2.csv','ab') as f:
writer = csv.writer(f)
writer.writerow(('page', hits[0].text.encode('UTF-8').replace('Â',' ')))
如果仍然失败,请检查字段大小限制并根据需要增加它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.