【发布时间】:2019-02-08 16:48:53
【问题描述】:
我正在尝试将三个 .txt 文件组合在一起。第一个文件包含应该在页面顶部的一行,第二行应该包含第一个客户的发票信息,然后下面应该是发票中的详细信息。每个都有一个介于 31625 和 31643 之间的 ID。程序应该查看第一个文件,导入第一行,然后从第二个文件导入第一行,然后返回任何具有 31625 键的详细信息,然后移动到第二个第二个 .txt 文件的行。等等。 第二个 .txt 文件和第三个 .txt 文件都包含密钥。
我写了一个插入第一行的python脚本, 然后它从第二个 .txt 文件插入第一行,然后从 3 .txt 文件中找到任何具有 31625 键的内容,但停在那里。如何让它遍历每个键?
import sys
initial = open(r"dir:text1.txt","a+")
export = open(r"dir:text2.txt","r+")
invoice = open(r"dir:text3.txt3","r+")
detail = open(r"dir:text4.txt","r+")
for line in export:
initial.write(line)
def inv_insert(a):
for line in invoice:
if str(a) in line:
initial.write(line)
def det_insert(a):
for line in detail:
if str(a) in line:
initial.write(line)
def exp_insert():
for line in export:
initial.write(line)
exp_insert()
for i in range(31625,31644):
inv_insert(i)
det_insert(i)
initial.close()
export.close()
invoice.close()
detail.close()
【问题讨论】:
-
你试过什么?您是否尝试过调试自己的代码?你做了什么研究?您可能想回顾一下 Python 如何处理空格。 ericlippert.com/2014/03/05/how-to-debug-small-programs
-
您在第一次之后耗尽了文件迭代器。刚重新打开文件或
.seek到开头 -
除非文件很大——只需将其放入一行代码中的列表中,然后您就可以对其进行迭代以达到您的心目中的内容。
-
我在 pycharm 中调试了代码,发现它在第二轮跳过了 if 语句并继续。似乎它读取了文件,但没有进一步。我找不到有人将它用于相同目的的任何其他情况。我查看了有关 for 循环的文档,以确保我写得正确。
标签: python python-3.x for-loop