![](/img/trans.png)
[英]Read nth line of importlib.resources.files without loading whole file in memory
[英]Read XML line by line without loading whole file to memory
這是我的 XML 的結構:
<?xml version="1.0" encoding="utf-8"?>
<posts>
<row Id="4" PostTypeId="1" AcceptedAnswerId="7" CreationDate="2008-07-31T21:42:52.667" Score="756" ViewCount="63468" Body="<p>I want to use a <code>Track-Bar</code> to change a <code>Form</code>'s opacity.</p>
<p>This is my code:</p>
<pre class="lang-cs prettyprint-override"><code>decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;
</code></pre>
<p>When I build the application, it gives the following error:</p>
<blockquote>
<pre class="lang-none prettyprint-override"><code>Cannot implicitly convert type decimal to double
</code></pre>
</blockquote>
<p>I have tried using <code>trans</code> and <code>double</code>, but then the <code>Control</code> doesn't work. This code worked fine in a past VB.NET project.</p>
" OwnerUserId="8" LastEditorUserId="3072350" LastEditorDisplayName="Rich B" LastEditDate="2021-02-26T03:31:15.027" LastActivityDate="2021-11-15T21:15:29.713" Title="How to convert a Decimal to a Double in C#?" Tags="<c#><floating-point><type-conversion><double><decimal>" AnswerCount="12" CommentCount="4" FavoriteCount="59" CommunityOwnedDate="2012-10-31T16:42:47.213" ContentLicense="CC BY-SA 4.0" />
<row Id="6" PostTypeId="1" AcceptedAnswerId="31" CreationDate="2008-07-31T22:08:08.620" Score="313" ViewCount="22477" Body="<p>I have an absolutely positioned <code>div</code> containing several children, one of which is a relatively positioned <code>div</code>. When I use a <code>percentage-based width</code> on the child <code>div</code>, it collapses to <code>0 width</code> on IE7, but not on Firefox or Safari.</p>
<p>If I use <code>pixel width</code>, it works. If the parent is relatively positioned, the percentage width on the child works.</p>
<ol>
<li>Is there something I'm missing here?</li>
<li>Is there an easy fix for this besides the <code>pixel-based width</code> on the child?</li>
<li>Is there an area of the CSS specification that covers this?</li>
</ol>
" OwnerUserId="9" LastEditorUserId="9134576" LastEditorDisplayName="user14723686" LastEditDate="2021-01-29T18:46:45.963" LastActivityDate="2021-01-29T18:46:45.963" Title="Why did the width collapse in the percentage width child element in an absolutely positioned parent on Internet Explorer 7?" Tags="<html><css><internet-explorer-7>" AnswerCount="7" CommentCount="0" FavoriteCount="13" ContentLicense="CC BY-SA 4.0" />
</posts>
我可以row
加載而不將整個 XML 文件加載到 memory 中嗎? 例如打印所有的標題
如果 XML 文件的結構與示例中所示的完全相同,則 BeautifulSoup 可用於解析相關行。 像這樣:
from bs4 import BeautifulSoup as BS
with open('my.xml') as xml:
for line in map(str.strip, xml):
if line.startswith('<row'):
soup = BS(line, 'lxml')
if row := soup.find('row'):
if title := row.get('title'):
print(title)
XML 中的“行”是無關緊要的; 相關單位是元素、屬性、開始標簽、結束標簽等。
流式解析器(通常稱為 SAX 解析器,盡管嚴格來說 SAX 是一個 Java API)將遞增地向應用程序交付文檔,不是一次一行,而是一次一個語法單元。
參見例如Python SAX 解析器
你可以嘗試這樣的事情:
while line:= file.readline():
是的,你可以使用open() ,它會返回一個文件 object 而不是將文件內容讀入 RAM。 所以你想做這樣的事情:
with open('file_name') as file:
for row in file:
print(row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.