在TXT文件中复制一行并每次复制时增加其中的数字
假设我在一个TXT文件里有这一行:
ABCD1EFGH
我想做的是把这一行重复一定次数,每次重复的时候,数字1会加1。就像这样:
ABCD1EFGH
ABCD2EFGH
ABCD3EFGH
ABCD4EFGH
那么,Python里怎么写代码来实现这个呢?
我还没有尝试过任何方法,完全不知道该怎么做。
5 个回答
0
你也可以这样尝试。这段代码主要是通过嵌套循环来实现的。
- 文件的原始内容:
ABC12EFG
HIJ4KLM
- 输入:
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)
- 输出(当循环运行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