如何并行读取两个文件与Python? [重复]

问题描述 投票:0回答:1

这个问题已经在这里有一个答案:

我有两个非常长的完全相同的行数的和与对应于由线彼此线行的文件(超过100万线)。我想行改为平行线这两个文件,写取决于线路的内容的新文件。

更具体的,第一个文件的样子

<text id="Jamilja03" title="Жамиля" title_english="Jamilja" year="1959" genre="novelette" author="Chyngyz Aitmatov>
<s>
Жамийла
Ар
дайым
бир
жакка
жол
жүрөрдө
,
мен
ушул
алкагы
жөнөкөй
жыгачтан
жасалган
сүрөттүн
алдына
келип
турам
.
</s>

第二个文件看起来像

<^text/*text$ ^id/*id$=^"/"<quot>$^Jamilja03/*Jamilja03$^"/"<quot>$ ^title/*title$=^"/"<quot>$^Жамиля/*Жамиля$^"/"<quot>$ ^title/*title$_^englis/*english$=^"/"<quot>$^Jamilja/*Jamilja$^"/"<quot>$ ^year/*year$=^"/"<quot>$^1959/1959<num>$^"/"<quot>$ ^genre/*genre$=^"/"<quot>$^novelette/*novelette$^"/"<quot>$ ^author/*author$=^"/"<quot>$^Chyngyz/Chyngyz<np><unk>$ ^Aitmatov/*Aitmatov$>
<^s/*s$>
^Жамийла/*Жамийла$
^Ар дайым/ар дайым<adv>$
^бир/бир<num>$
^жакка/жак<n><dat>$
^жол/жол<adv>$
^жүрөрдө/жүр<v><iv><ger_fut><loc>$
^,/,<cm>$
^мен/мен<prn><pers><p1><sg><nom>$
^ушул/ушул<det><dem>$
^алкагы/алкак<n><px3sp><nom>$
^жөнөкөй/жөнөкөй<adj>$
^жыгачтан/жыгач<n><abl>$
^жасалган/жаса<v><tv><pass><prc_past>$
^сүрөттүн/сүрөт<n><gen>$
^алдына/алд<n><px3sp><dat>$
^келип/кел<v><iv><prc_perf>$
^жүрөрдө/жүр<v><iv><ger_fut><loc>$
^,/,<cm>$
^мен/мен<prn><pers><p1><sg><nom>$
^ушул/ушул<det><dem>$
^алкагы/алкак<n><px3sp><nom>$
^жөнөкөй/жөнөкөй<adj>$
^жыгачтан/жыгач<n><abl>$
^жасалган/жаса<v><tv><pass><prc_past>$
^сүрөттүн/сүрөт<n><gen>$
^алдына/алд<n><px3sp><dat>$
^келип/кел<v><iv><prc_perf>$
^турам/тур<vaux><aor><p1><sg>$
^./.<sent>$
<^///<sent>$^s/*s$>

我想用在一般的第二个文件(有一些重新格式化)的线,但保持在包含从XML标记的第一个文件的XML标记某些行的XML标记。

天真的方法一样

for line_a in file_a and line_b in file_b:

不与蟒蛇工作。

已经有一个类似的标题,即How to read two files in parallel line by line in python但建议的答复(读取一个文件到列表或字典)不适合我的工作的问题。我真的想读这两个文件的线条,比决定进一步的处理,并给他们事后忘了。

python for-loop file-io nlp
1个回答
3
投票

使用zip在其已经生成的文件:

for la, lb in zip(file_a, file_b):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.