首页 > 解决方案 > 蟒蛇 | 同时写入多个文件

问题描述

使用 python 2.6 并转换为 HTML。

我正在获取原始数据文件并将其转换为 HTML 格式以满足不同的要求并发送给不同的团队,我的代码工作正常,但由于重复相同的操作,我的代码变得越来越长,完成所需的时间也越来越长。- 所有数据都应在 1 个文件中 - 仅在 1 个文件中完成订单 - 仅在 1 个文件中待定订单及以上... 已从以下原始文件中提供了一些示例数据,并带有状态缩写

PE  PENDING
QE  QUEUE
TR  TRANSIT
DU  DUPLICATE
PP  PENDING PAYMENT
LO  LOCAL
DO  DOMESTIC
IN  INTERNATIONAL

以下是数据文件中的小样本

89u1    CO
iu3e    DO
i8qk    IN
mai8    LO
ah9s    CO
js9a    PE
las8    QE
ksp0    QE
jsm4    TR
7ahd    DU
akw8    DO
2ish    DU
92jd    TR
ks3k    PE

在下面的代码中,我打开文件并首先处理所有记录,然后对每个状态一个接一个地重复它。由于数据量不断增加,我们有 24 个这样的奇怪状态,并且正在创建 25 个这样的文件,处理时间也在增加。无论如何,我可以一次尝试将标头写入所有文件吗?对于数据,我正在为循环编写检查,这将帮助我节省一些时间,但我主要的头痛是页眉和页脚,这对所有文件都很常见,我必须在每个文件中一一写入。

src="source.txt"
all="all.txt"
fco="co.txt"
fpe="pe.txt"
fqe="qe.txt"
ftr="tr.txt"

src = open("source.txt","r")
fco = open("co.txt","w")
fpe = open("pe.txt","w")
fqe = open("qe.txt","w")
ftr = open("tr.txt","w")

all.write("Date")
all.write("Order Status Report")
all.write("It is order report with all status")
for lines in src.readlines():
    ...
    ...
    ...
all.write("Report contain xx records")

fco.write("Date")
fco.write("Order Status Report")
fco.write("It is order report for Completed")
for lines in src.readlines():
    ...
    ...
    ...
fco.write("Report contain xx records")


fpe.write("Date")
fpe.write("Order Status Report")
fpe.write("It is order report for Pending")
for lines in src.readlines():
    ...
    ...
    ...
fpe.write("Report contain xx records")

感谢所有给我时间阅读和询问的人。

标签: pythonfile-handling

解决方案


怎么样:

write_pointers = [fco, fpe, fqe, ftr]
for pointer in write_pointers:
    pointer.write("Date")
    pointer.write("Order Status Report")
    pointer.write("It is order report with all status")
    for lines in src.readlines():
        ...
        ...
        ...

?


推荐阅读