【问题标题】:Python Search text file & replacePython搜索文本文件并替换
【发布时间】:2024-01-23 02:49:02
【问题描述】:

我想从 textfile1.txt 中获取单词列表,并将 textfile2.txt 上的单词“example”替换为第一行、第二行等的任何文本。我该怎么做?

文本文件 textfile1.txt

user1
user2
user3
user4
user5

文本文件 textfile2.txt

url/example
url/example
url/example
url/example
url/example

到目前为止我有什么

#!/usr/bin/env python3
import fileinput

with fileinput.FileInput("textfile2.txt", inplace=True ) as file:
    for line in file:
        print(line.replace("example", "user1"), end='')

我的目标:

url/user1
url/user2
url/user3

【问题讨论】:

    标签: python replace text-files


    【解决方案1】:

    应该这样做。一般来说,当你想并行遍历 2 个或更多迭代(列表、文件等)时,你可以使用zip

    with open('textfile1.txt') as f1, open('textfile2.txt') as f2:
        for l, r in zip(f1, f2):
            print(r[:r.find('/')+1] + l)
    

    【讨论】:

    • 好。但也许使用izip(或Python 3),所以不需要读取2个文件的全部内容......
    • 你的意思是print(r[:r.find('/')+1] + l)
    • 嘿,是的,我做到了,@Moses Koledoye。 dawg,OP 使用的是 Python 3,但你说得有道理。
    • 完美运行!谢谢兄弟,但我遇到了另一个问题,每当我运行它来替换“示例”时,它只会输出 user1 而不是: URL GOTO=URL.com/example TAG POS=1 TYPE=BUTTON ATTR=TXT:Follow WAIT SECONDS= 2712 what我在这里失踪了吗?我将代码更改为 print(r[:r.find('/example')+1] + l) btw
    【解决方案2】:

    我会打开第一个文件并将每一行读入一个数组:['user1', 'user2', ...]

    然后,当您阅读第二个文件时,请跟踪您的行号。根据行号索引数组并将该字符串用作替换字符串。

    或者使用 zip() 答案,也可以。

    【讨论】: