【问题标题】:Get the last character of a String from a file in Python?从 Python 中的文件中获取字符串的最后一个字符?
【发布时间】:2014-11-13 23:33:51
【问题描述】:

我正在尝试编写一个函数,该函数接受一个字符并将ifile 中以字符c 结尾的所有单词放入另一个新文件中。我认为这将基于字符串索引,但文本文件结果始终为空白。为什么line[0] 可以工作,而line[-1] 不行?我不明白为什么同样的概念不适用。

def getListEnd(c,ifile,ofile):
    for line in ifile:
        if c in line[-1]:
            ofile.write(str(line))

【问题讨论】:

  • 您是否正确关闭了您的ofile
  • 在 python 中迭代文件会保留行尾字符。你确定 ifile 是一个可以关闭 CR 和 LF 的迭代器吗?
  • 你是什么意思 line[0] 会工作,但 line[-1] 不会? line[-1] 返回字符串的最后一个字符。

标签: string python-3.x file-io


【解决方案1】:

确保在与您编写 ofile = open('some_file.txt', 'w') 的范围相同的范围内调用 ofile.close(),但当然是在您调用 getListEnd 之后。

所以你的代码看起来像这样:

def getListEnd(c,ifile,ofile):
    for line in ifile:
        if c in line[-1]:
            ofile.write(str(line))

infile = open('inputfile.txt', 'r')
outfile = open('outputfile.txt', 'w')
getListEnd('$', infile, outfile)
outfile.close()
infile.close()

如果您不调用close(),您的缓冲区可能无法正确刷新,因此您的文件将不会被写入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多