如何使用readline方法?

2024-10-06 12:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的代码:

from sys import argv

script, input_file = argv

def fma(f):
    f.readline()

current_file = open(input_file)

fma(current_file)

txt文件的内容是:

^{pr2}$

我添加了\n字符,这样您就知道我在文本编辑器中按了enter键。在

我想要完成的是取回每一行和每一个\n字符。在

问题是,当运行脚本时,我什么也得不到。我做错了什么?我如何才能修复它,以便像我上面所说的那样运行?在


Tags: 代码fromimporttxtinputreadlinedefsys
3条回答

您的函数读取一行,但对它不做任何操作:

def fma(f):
    f.readline()

您需要返回f.readline()给您的字符串。请记住,在交互式提示中,最后生成的值是自动打印的,但是.py文件中的Python代码不是这样工作的。在

很确定你真正想要的是f.readlines,而不是f.readline。在

# module start
from __future__ import with_statement # for python 2.5 and earlier

def readfile(path):
    with open(path) as src:
        return src.readlines()

if __name__ == '__main__':
    import sys
    print readfile(sys.argv[1])
# module end

请注意,我正在使用with上下文管理器来更有效地打开文件(它为您完成关闭文件的工作)。在Python2.6及更高版本中,您不需要在顶部使用花哨的import语句,但我有一个习惯,即对于仍在使用较旧Python的人来说,包括它。在

def fma(f):
    f.readline()

f.readline()是一个函数,它返回一个值,在本例中是文件中的一行,您需要使用该值“执行”一些操作,例如:

^{pr2}$

相关问题 更多 >