针对“Python 判断txt每行内容中是否包含子串并重新写入保存”的问题,可以通过以下几个步骤实现:
1. 读取文件
需要首先先读取该txt文件中的内容,具体实现方法如下:
with open('file.txt', 'r') as f:
lines = f.readlines()
其中,with
语句可以自动帮我们关闭文件。通过readlines()
函数,可以读取全部文件并按照行切分,将每行的内容作为一个字符串元素存入列表lines
中。
2. 判断是否包含子串
得到每行的字符串后,我们需要判断该字符串是否包含了特定的子串。这里我们可以采用字符串的find
或in
方法,例如:
if 'keyword' in line:
# do something
这段代码表示如果line
中包含字符串keyword
,则执行某些操作。
3. 重新写入保存
如果某行包含我们想要的子串,我们可以将其写入一个新的txt文件中。例如:
with open('new_file.txt', 'w') as f:
for line in lines:
if 'keyword' in line:
f.write(line)
这段代码中,with
语句又帮我们自动关闭了文件,我们使用w
模式打开文件以便写入内容。然后,我们遍历lines
中的每一行,如果某行包含了keyword
这个子串,就将该行写入新文件中。
示例说明
下面提供两个示例,来更具体的说明如何通过Python判断txt每行内容中是否包含子串并重新写入保存。
示例1
现有一个名为data.txt的txt文件,里面有如下内容:
apple
banana
orange
lemon
grape
现在我们想要找出其中包含'le'的行并保存到另一个文件中。可以使用以下代码:
with open('data.txt', 'r') as f:
lines = f.readlines()
with open('new_data.txt', 'w') as f:
for line in lines:
if 'le' in line:
f.write(line)
运行后,我们检查一下new_data.txt文件,可以发现其中保存了原文件中包含'le'的行。
示例2
假设我们现在有一个翻译文件translation.txt,其中以“中文\t英文”的格式保存着一些单词的翻译,如下所示:
苹果 apple
香蕉 banana
橙子 orange
柠檬 lemon
葡萄 grape
现在我们想要找出其中包含'apple'的行并保存到另一个文件中,可以使用以下代码:
with open('translation.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
with open('new_translation.txt', 'w', encoding='utf-8') as f:
for line in lines:
if 'apple' in line.split('\t')[1]:
f.write(line)
这段代码中,我们使用了split
方法对每行进行切分,以便获取到英文翻译。再使用if 'apple' in line.split('\t')[1]
这句话来判断是否包含'apple',如果包含则将整行写入新文件中。
注意:由于该示例中使用了中文,因此需要加入encoding
参数来指定文件编码格式,否则会出现乱码问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 判断txt每行内容中是否包含子串并重新写入保存的实例 - Python技术站