【问题标题】:Outputting lines from a file containing a specific string从包含特定字符串的文件中输出行
【发布时间】:2013-12-02 20:37:45
【问题描述】:

我是 Python 3 的初学者,遇到问题需要帮助。我要在文件filename 中输出每一行,其中包含字符串target,前面是行号。

我试图测试我想出的东西,但 IDLE 不断抛出一条错误消息,说“没有这样的文件或目录:”即使我已将歌词放入文件等中。

这就是我所拥有的:

def SearchFile (filename, target):
    filehandle = open ( filename, "r" )
    linenumber = 0
    while True :
        line = filehandle.readline ()
        if line == "":
            break
        linenumber += 1
        print ("%3i - %10i - %s" % (linenumber, target, line) )

那么,谁能告诉我我这样做是正确的还是犯了一个非常愚蠢的错误? 任何帮助将不胜感激!

【问题讨论】:

  • “No such file or directory” 表示找不到该文件。所以文件路径可能是错误的。
  • 文件存储在哪里? Python 的工作目录是什么?如果您只是从开始菜单运行 Idle,它是“C:\Python33”(可能)

标签: python file python-3.x output


【解决方案1】:

正如@poke 所说,“没有这样的文件或目录”意味着找不到该文件。所以文件路径可能是错误的

除此之外,您还有另一个问题 - 您没有在打印的行中检查 target 的存在

def searchFile(filename, target):
  with open(filename) as infile:
    for linenum, line in enumerate(infile):
      if target in line:
        print("%3i - %10i - %s" % (linenumber, target, line))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多