在TXT文件中复制一行并每次复制时增加其中的数字

1 投票
5 回答
71 浏览
提问于 2025-04-14 16:54

假设我在一个TXT文件里有这一行:

ABCD1EFGH

我想做的是把这一行重复一定次数,每次重复的时候,数字1会加1。就像这样:

ABCD1EFGH
ABCD2EFGH
ABCD3EFGH
ABCD4EFGH

那么,Python里怎么写代码来实现这个呢?

我还没有尝试过任何方法,完全不知道该怎么做。

5 个回答

0

你也可以这样尝试。这段代码主要是通过嵌套循环来实现的。

  1. 文件的原始内容:
ABC12EFG
HIJ4KLM
  1. 输入:
t=int(input("no.of loops="))
m=open("demofile3.txt","r")
a=m.readlines()
b=a
for i in range(0,t):
    a=b
    b=[]
    for j in a:
        print(j)
        p=""
        d=0
        f=0
        for k in range(0,len(j)):
            if j[k].isnumeric():
                    if j[k+1].isnumeric():
                      f=10*int(j[k])
                      d=d+f
                    else:
                      d=d+int(j[k])
                      p=p+str(d+1)
            else:
                p=p+j[k]
        b.append(p)
  1. 输出(当循环运行3次时):
ABC12EFG
HIJ4KLM
ABC13EFG
HIJ5KLM
ABC14EFG
HIJ6KLM

希望这对你有帮助 :)

0

试试这样做

def duplicate_and_increase_number(line, amount):
    result = []
    for i in range(1, amount + 1):
        new_line = line.replace('1', str(i), 1)
        result.append(new_line)
    return result

content = 'ABCD1EFGH'
duplicates = duplicate_and_increase_number(content, 4)  # Change 4 to the desired amount
for text in duplicates:
    print(text)

输出结果:

ABCD1EFGH
ABCD2EFGH
ABCD3EFGH
ABCD4EFGH
0

我会把从文件中读取内容和写回文件的部分留给你自己练习。

根据你的例子,我假设这个数字的前面和后面各有4个字符。

txt = "ABCD1EFGH"
number = int(txt[4])
for i in range(12):
    print(f"{txt[:4]}{number + i}{txt[5:]}")

ABCD1EFGH
ABCD2EFGH
ABCD3EFGH
ABCD4EFGH
ABCD5EFGH
ABCD6EFGH
ABCD7EFGH
ABCD8EFGH
ABCD9EFGH
ABCD10EFGH
ABCD11EFGH
ABCD12EFGH

撰写回答