我有关于12340辆汽车的信息.此信息按顺序存储在两个不同的文件中:
我想在python中做:在car_descriptions.txt文件中为每辆车添加第7行中的每辆车的名称(来自其他文件)(它是空的),就在@CAR_NAME之后
我想过:
1)读取第一个文件并将汽车名称存储在矩阵/列表中2)开始读取第二个文件,每次找到字符串@CAR_NAME时,只需在下一行写下名称
但我想知道是否有更快的方法,所以程序每次从每个文件读取一行并进行修改.
谢谢
首先,制作一个从序列中检索汽车名称的发电机.你可以每7行产生一次; 我已经让我的产量跟随以下行开头的行@CAR_NAME:
def car_names(seq):
yieldnext=False
for line in seq:
if yieldnext: yield line
yieldnext = line.startswith('@CAR_NAME')
Run Code Online (Sandbox Code Playgroud)
现在您可以使用itertools.izip并行浏览两个序列:
from itertools import izip
with open(r'c:\temp\cars.txt') as f1:
with open(r'c:\temp\car_names.txt') as f2:
for (c1, c2) in izip(f1, car_names(f2)):
print c1, c2
Run Code Online (Sandbox Code Playgroud)
我不确定我是否完全明白你想要做什么,是这样的?
f1 = open ('car_names.txt')
f2 = open ('car_descriptions.txt')
for car_name in f1.readlines ():
for i in range (6): # echo the first 6 lines
print f2.readline ()
assert f2.readline() == '@CAR_NAME' # skip the 7th, but assert that it is @CAR_NAME
print car_name # print the real car name
for i in range (33): # print the remaining 33 of the original 40
print f2.readline ()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8442 次 |
| 最近记录: |