Python 从一个文件中读取单词并将其放入另一个文件中
我想从一个文件中挑选单词,并使用python将它们grep到另一个文件中。代码看起来像Python 从一个文件中读取单词并将其放入另一个文件中,python,Python,我想从一个文件中挑选单词,并使用python将它们grep到另一个文件中。代码看起来像 f1 = open("file1.txt",'r') f2 = open("file2.txt",'r') def find_word(str, fp): for line in fp: if line == str: print (line) for word in f1: find_word(word, f2) 虽然我确信file2.txt中存
f1 = open("file1.txt",'r')
f2 = open("file2.txt",'r')
def find_word(str, fp):
for line in fp:
if line == str:
print (line)
for word in f1:
find_word(word, f2)
虽然我确信file2.txt中存在一些单词,但没有打印任何内容。该代码段有什么问题吗?检查函数
查找word
:
def find_单词(str,fp):
对于fp中的行:
如果line==str:
打印(行)
这将迭代文件中由fp
给出的每一行(或就此而言的任何iterable)。除非字符串str
与文件中的一行完全匹配(包括换行符,如果适用),否则函数不会打印任何内容。你可能想检查它是否在那一行,用
def find_单词(str,fp):
对于fp中的行:
如果str符合要求:
打印(行)
或者更好,因为str
是一个内置类
def find_word(查询,fp):
对于fp中的行:
如果行中有查询:
打印(行)
您可能还希望在中从
word
中删除换行符
f1中的单词的:
查找单词(单词,f2)
因此,它可能看起来像
f1中的单词的:
查找单词(word.rstrip('\r\n'),f2)
检查功能查找单词
:
def find_单词(str,fp):
对于fp中的行:
如果line==str:
打印(行)
这将迭代文件中由fp
给出的每一行(或就此而言的任何iterable)。除非字符串str
与文件中的一行完全匹配(包括换行符,如果适用),否则函数不会打印任何内容。你可能想检查它是否在那一行,用
def find_单词(str,fp):
对于fp中的行:
如果str符合要求:
打印(行)
或者更好,因为str
是一个内置类
def find_word(查询,fp):
对于fp中的行:
如果行中有查询:
打印(行)
您可能还希望在中从
word
中删除换行符
f1中的单词的:
查找单词(单词,f2)
因此,它可能看起来像
f1中的单词的:
查找单词(word.rstrip('\r\n'),f2)
第一次搜索单词时,您会使用整个输入文件。后续搜索将失败,因为对于文件中的行
将不返回任何内容
如果你在一行中搜索单词,那也会失败,因为你读的这行包含了终止的换行符;所以
if 'word\n' in line:
如果不是紧靠行尾,将找不到
word
。您在第一次搜索单词时会使用整个输入文件。后续搜索将失败,因为对于文件中的行
将不返回任何内容
如果你在一行中搜索单词,那也会失败,因为你读的这行包含了终止的换行符;所以
if 'word\n' in line:
如果
word
不是紧靠行尾,则找不到它。您能举例说明line
的值可能是什么吗?类似于/*0040*/MOV R4,0x0;/*0x000000000047802*/
和MOV的I grep所以您是否在问为什么字符串“/*0040*/MOV R4,0x0;/*0x000000000047802*/\n”
和“MOV”
不相等?不。为什么查找单词(“MOV”,f2)
不返回任何内容,而f2是包含/*0040*/MOV R4,0x0;/*0x0000000000047802*/
?请参阅我的答案,但要点是==
将要求字符串精确匹配。在给出的示例中,您正在执行我前面提到的比较。您能举一个示例说明行
的值可能是什么吗?类似于/*0040*/MOV R4,0x0;/*0x000000000047802*/
和MOV的I grep所以您是否在问为什么字符串“/*0040*/MOV R4,0x0;/*0x000000000047802*/\n”
和“MOV”
不相等?不。为什么查找单词(“MOV”,f2)
不返回任何内容,而f2是包含/*0040*/MOV R4,0x0;/*0x0000000000047802*/
?请参阅我的答案,但要点是==
将要求字符串精确匹配。在给出的示例中,您正在执行我前面提到的比较。