Tôi có hai tệp văn bản bằng hai ngôn ngữ khác nhau và chúng được căn chỉnh theo từng dòng. I E. Dòng đầu tiên trong TextFile1 tương ứng với dòng đầu tiên trong TextFile2, v.v.
Có cách nào để đọc đồng thời cả hai dòng tệp không?
Dưới đây là một mẫu về cách các tệp sẽ trông như thế nào, hãy tưởng tượng số lượng dòng trên mỗi tệp là khoảng 1.000.000.
textfile1:
This is a the first line in English
This is a the 2nd line in English
This is a the third line in English
textfile2:
C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
kết quả mong muốn
This is a the first line in English\tC'est la première ligne en Français
This is a the 2nd line in English\tC'est la deuxième ligne en Français
This is a the third line in English\tC'est la troisième ligne en Français
Có một phiên bản Java của hai dòng TextFile này từng dòng -Java, nhưng Python không sử dụng BufferedReaderer đọc từng dòng. Vậy nó sẽ được thực hiện như thế nào?
mkrieger1
16.1k4 Huy hiệu vàng50 Huy hiệu bạc58 Huy hiệu đồng4 gold badges50 silver badges58 bronze badges
hỏi ngày 2 tháng 7 năm 2012 lúc 13:56Jul 2, 2012 at 13:56
2
with open["textfile1"] as textfile1, open["textfile2"] as textfile2:
for x, y in izip[textfile1, textfile2]:
x = x.strip[]
y = y.strip[]
print[f"{x}\t{y}"]
Trong Python 2, thay thế zip
tích hợp bằng
C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
0: from itertools import izip
with open["textfile1"] as textfile1, open["textfile2"] as textfile2:
for x, y in izip[textfile1, textfile2]:
x = x.strip[]
y = y.strip[]
print["{0}\t{1}".format[x, y]]
Alvas
109K101 Huy hiệu vàng424 Huy hiệu bạc697 Huy hiệu Đồng101 gold badges424 silver badges697 bronze badges
Đã trả lời ngày 2 tháng 7 năm 2012 lúc 14:00Jul 2, 2012 at 14:00
Fred Foofred FooFred Foo
348K74 Huy hiệu vàng726 Huy hiệu bạc824 Huy hiệu đồng74 gold badges726 silver badges824 bronze badges
2
with open[file1] as f1, open[fil2] as f2:
for x, y in zip[f1, f2]:
print["{0}\t{1}".format[x.strip[], y.strip[]]]
output:
This is a the first line in English C'est la première ligne en Français
This is a the 2nd line in English C'est la deuxième ligne en Français
This is a the third line in English C'est la troisième ligne en Français
Đã trả lời ngày 2 tháng 7 năm 2012 lúc 14:00Jul 2, 2012 at 14:00
Fred Foofred FooAshwini Chaudhary
348K74 Huy hiệu vàng726 Huy hiệu bạc824 Huy hiệu đồng56 gold badges451 silver badges499 bronze badges
2
Ashwini Chaudharyashwini Chaudhary
filenames = ['textfile1', 'textfile2']
def gen_line[filename]:
with open[filename] as f:
for line in f:
yield line.strip[]
gens = [gen_line[n] for n in filenames]
for file1_line, file2_line in zip[*gens]:
print["\t".join[[file1_line, file2_line]]]
Note:
- 238K56 Huy hiệu vàng451 Huy hiệu bạc499 Huy hiệu Đồng
- Chúng tôi có thể sử dụng
1 để mở tệp thuận tiện hơn và nó có thể dễ dàng hỗ trợ cho iterator trên nhiều tệp hơn.C'est la première ligne en Français C'est la deuxième ligne en Français C'est la troisième ligne en Français
Đây là mã
C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
2. Đối với C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
3, hãy sử dụng C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
0 như những người khác đã nói.May 23, 2019 at 4:11
zip
sẽ dừng sau khi tệp ngắn nhất được lặp lại, sử dụng
C'est la première ligne en Français
C'est la deuxième ligne en Français
C'est la troisième ligne en Français
6 nếu nó quan trọng.YU ChangĐã trả lời ngày 23 tháng 5 năm 2019 lúc 4:112 silver badges6 bronze badges
Yu Changyu Chang
1482 Huy hiệu bạc6 Huy hiệu đồng
from itertools import izip
fileA = open["/path/to/file1"]
fileB = open["/path/to/file2"]
for lineA, lineB in izip[fileA, fileB]:
print "%s\t%s" % [lineA.rstrip[], lineB.rstrip[]]
Python cho phép bạn đọc từng dòng và thậm chí đó là hành vi mặc định - bạn chỉ lặp lại trong tệp như sẽ lặp lại trong danh sách.Jul 2, 2012 at 14:03