python 整行_Python查找模式并替换整行

def replace(file_path, pattern, subst):

file_path = os.path.abspath(file_path)

#Create temp file

fh, abs_path = mkstemp()

new_file = open(abs_path,'w')

old_file = open(file_path)

for line in old_file:

new_file.write(line.replace(pattern, subst))

#close temp file

new_file.close()

close(fh)

old_file.close()

#Remove original file

remove(file_path)

#Move new file

move(abs_path, file_path)

我有这个函数来替换文件中的字符串.但我无法找到替换找到模式的整条线的好方法.

例如,如果我想替换一行包含:“John整天努力工作”使用模式“John”,替换将是“Mike没有那么努力”.

使用我当前的函数,我将不得不在模式中写入整行以替换整行.

解决方法:

首先,您可以更改此部分:

for line in old_file:

new_file.write(line.replace(pattern, subst))

进入:

for line in old_file:

if pattern in line:

new_file.write(subst)

else:

new_file.write(line)

或者你可以让它更漂亮:

for line in old_file:

new_file.write(subst if pattern in line else line)

标签:python,replace

来源: https://codeday.me/bug/20190728/1565214.html

### 回答1: 在Python中,我们可以使用`open()`函数打开一个文本文件,并使用`readlines()`方法来逐行读取文件内容。然后,我们可以使用`for`循环遍历每一行,在每一行中使用`in`操作符来判断是否存在我们想要查找的关键字。 下面是一个示例代码,用于查找关键字并提取整行内容: ```python def extract_lines_with_keyword(file_path, keyword): # 打开文件并逐行读取内容 with open(file_path, 'r') as file: lines = file.readlines() # 遍历每一行,判断是否存在关键字并提取整行内容 extracted_lines = [] for line in lines: if keyword in line: extracted_lines.append(line) return extracted_lines ``` 在上面的代码中,`extract_lines_with_keyword()`函数接受两个参数:`file_path`表示文件路径,`keyword`表示要查找的关键字。函数首先打开文件并逐行读取内容,然后使用`for`循环遍历每一行,使用`in`操作符判断关键字是否存在于该行中。如果存在关键字,则将整行内容添加到一个列表中。最后,返回所有包含关键字的行的列表。 你可以将上述代码保存在一个Python文件中,然后调用`extract_lines_with_keyword()`函数来查找关键字并提取整行内容。例如: ```python file_path = 'example.txt' keyword = 'python' extracted_lines = extract_lines_with_keyword(file_path, keyword) for line in extracted_lines: print(line) ``` 上述代码假设你已经有一个名为`example.txt`的文本文件,并且想要查找包含关键字`python`的行。然后,它会打印出所有包含关键字的行的内容。 ### 回答2: 在Python中,可以使用字符串的`find()`方法来查找关键字,并通过字符串的`splitlines()`方法将文本按行划分。具体步骤如下: 1. 将待查找的文本保存到一个字符串变量中。 2. 使用`find()`方法查找关键字在字符串中的位置,如果找到,则返回关键字所在位置的索引值;若找不到,则返回-1。 3. 将字符串按行划分为一个列表,可以使用`splitlines()`方法。 4. 遍历划分后的列表,使用关键字的索引值对每一行进行判断,若索引值大于等于0,则表示关键字在该行中存在;则可以将该行添加到另一个列表中,构成提取到的整行。 5. 完成遍历后,提取到的整行将保存在另一个列表中,可以根据需求输出或进一步处理。 以下是一个示例代码: ```python text = """Python是一种简单易学但功能强大的编程语言。它广泛应用于Web开发、数据分析、人工智能等领域。Python具有丰富的内置函数和库,可以大大提高编程效率。 Python的关键字包括if、else、for、while、def等。我们想要提取具有关键字的整行,并将它们保存在一个列表中。 这里是一个示例: if n > 0: print("数字为正数") else: print("数字为负数") 我们可以使用Python进行关键字的查找整行提取的操作。 """ keyword = "print" # 待查找的关键字 lines = text.splitlines() # 按行划分文本 extracted_lines = [] # 保存提取到的整行 for line in lines: if line.find(keyword) >= 0: extracted_lines.append(line) # 输出提取到的整行 for extracted_line in extracted_lines: print(extracted_line) ``` 运行上述代码,将会输出: ``` print("数字为正数") print("数字为负数") ``` 这样,我们就可以轻松地在文本中查找关键字,并将包含关键字的整行提取出来。 ### 回答3: Python提供了一种简单的方式来查找关键字并提取整行的方法。可以使用Python的读写文件功能和字符串处理功能来实现这个功能。 首先,我们需要打开一个文件并读取其中的内容。可以使用`open()`函数打开文件,并使用`readlines()`方法读取所有行的内容。将这些内容存储在一个列表中。 接下来,我们可以使用循环遍历列表中的每一行。在每一行中,可以使用`in`关键字判断关键字是否存在。如果关键字存在,我们可以将整行提取出来,并将其存储在一个新的列表中,或者进行其他操作。 以下是一个例子,演示如何使用Python查找关键字并整行提取: ```python # 文件路径 file_path = "example.txt" # 关键字 keyword = "Python" # 打开文件并读取内容 with open(file_path, "r") as file: lines = file.readlines() # 存储包含关键字的整行 results = [] # 遍历每一行 for line in lines: # 判断关键字是否存在于当前行 if keyword in line: # 将包含关键字的整行添加到结果列表中 results.append(line) # 打印结果 for result in results: print(result) ``` 在这个例子中,我们假设存在一个名为"example.txt"的文本文件,其中包含多个行文本。我们想要找到包含关键字"Python"的行,并提取出来。 请根据具体需求修改文件路径和关键字,并适应不同的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值