Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在下面的代码中搜索一个文件中的单词并将其写入另一个文件有什么不对?_Python - Fatal编程技术网

Python 在下面的代码中搜索一个文件中的单词并将其写入另一个文件有什么不对?

Python 在下面的代码中搜索一个文件中的单词并将其写入另一个文件有什么不对?,python,Python,我无法找到这段代码中的错误。它不会创建新文件,即FinalResult.txt import os log = open('C:\\Sanity_Automation\\Work_Project\\Output\\Result.doc','r') log_read=log.readlines() x="FAIL" if x in log_read: with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.t

我无法找到这段代码中的错误。它不会创建新文件,即FinalResult.txt

import os

log = open('C:\\Sanity_Automation\\Work_Project\\Output\\Result.doc','r')
log_read=log.readlines()
x="FAIL"
if x in log_read:
    with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.txt', 'w') as fout:
        fout.write("\n")
        fout.write(x)

还有一件事。当它找到那个单词时,它应该在找到它的地方写下完整的一行文本(而不是“FAIL”)。

log\u read
是一个列表(作为
.readlines
的结果)

如果在log_read中测试
x,则会询问列表中是否有任何项等于
失败
。换句话说,任何整行

你指的是以下几点吗

for line in log_read:
   if x in line:
      # found it

log\u read
是一个列表(作为
.readlines
的结果)

如果在log_read
中测试
x,则会询问列表中是否有任何项等于
失败
。换句话说,任何整行

你指的是以下几点吗

for line in log_read:
   if x in line:
      # found it

log\u read
是文件中每一行的列表。我想你想做的是看看整个文件中是否存在一个单词,而不是一行单词

for line in log_read:
    if x in line:
        with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.txt', 'w') as fout:
            fout.write('\n')
            fout.write(line) # Writes the line to the file as well

log\u read
是文件中每一行的列表。我想你想做的是看看整个文件中是否存在一个单词,而不是一行单词

for line in log_read:
    if x in line:
        with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.txt', 'w') as fout:
            fout.write('\n')
            fout.write(line) # Writes the line to the file as well

另外,您正在读取一个“.doc”文件,我想这是一个Microsoft Word文件


你应该考虑把它转换成一个平面文本文件

,也就是说,你正在读取一个“.doc”文件,我想它是一个微软Word文件。

你应该考虑把它转换成一个平面文本文件

< p>它没有创建FielalReult.txt,因为在“LogyRead”中可能没有“失败”。顺便说一句,日志读取是列表。您没有搜索列表中的每一行,而是搜索整行,这(在大多数情况下)将失败

这样把整行写在文件中,并没有太大的变化

  import os

        log = open('C:\\Sanity_Automation\\Work_Project\\Output\\Result.doc','r')
        log_read=log.readlines()
        x="FAIL"
        for line in log_read:
            if x in line:
                with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.txt', 'w') as fout:
                    fout.write("\n")
                    fout.write(line)

它尚未创建FinalResult.txt,因为“日志读取”中可能没有“失败”。顺便说一句,日志读取是列表。您没有搜索列表中的每一行,而是搜索整行,这(在大多数情况下)将失败

这样把整行写在文件中,并没有太大的变化

  import os

        log = open('C:\\Sanity_Automation\\Work_Project\\Output\\Result.doc','r')
        log_read=log.readlines()
        x="FAIL"
        for line in log_read:
            if x in line:
                with open('C:\\Sanity_Automation\\Work_Project\\Output\\FinalResult.txt', 'w') as fout:
                    fout.write("\n")
                    fout.write(line)

你已经定义了X='Fail'。如果您写入x,则只会写入失败

你应该这样做

for line in log_read:
    if x in line : fout.write('%s\n'%line)
此外,只打开输出句柄一次(在循环之前)。或者先获取所有可写行,然后再写入一次(以提高效率)


你已经定义了X='Fail'。如果您写入x,则只会写入失败

你应该这样做

for line in log_read:
    if x in line : fout.write('%s\n'%line)
此外,只打开输出句柄一次(在循环之前)。或者先获取所有可写行,然后再写入一次(以提高效率)


嗯。。例如如果冰淇淋:失败。。。。它应该在那个文件中写下整行。。冰淇淋:FAILya。。例如如果冰淇淋:失败。。。。它应该在那个文件中写下整行。。冰淇淋:失败