Python将字符串的一部分写入cs

2024-05-22 00:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用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('Â',' ')))

按此代码点击[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);
    }
}

有人能提出解决办法吗? 谢谢


Tags: csvannotationcontentthemeclassinjectspandelimiter
1条回答
网友
1楼 · 发布于 2024-05-22 00:28:45

您必须小心不要放弃文件或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('Â',' ')))

如果仍然失败,请检查field size limit,并根据需要增加它。你知道吗

相关问题 更多 >