繁体   English   中英

如何使用readline方法?

[英]How can I use readline method?

我有这个琐碎的代码:

from sys import argv

script, input_file = argv

def fma(f):
    f.readline()

current_file = open(input_file)

fma(current_file)

txt文件的内容为:

Hello this is a test.\n
I like cheese and macaroni.\n
I love to drink juice.\n
\n
\n

我放置了\\n字符,所以您知道我在文本编辑器中按了回车键。

我要完成的工作是找回每一行和每个\\n字符。

问题是,运行脚本时我什么也没回来。 我在做错什么,如何解决该问题才能按上述要求运行?

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

def fma(f):
    f.readline()

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

def fma(f):
    f.readline()

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

def fma(f):
    print f.readline()

您的函数未返回任何内容。

def fma(f):
    data = f.readline()
    return data

f.readline()从文件中读取一行; 换行符(\\ n)留在字符串的末尾,如果文件未以换行符结尾,则仅在文件的最后一行省略。

该脚本应如下所示:

from sys import argv
script, input_file = argv

def fma(f):
    line = f.readline()
    return line

current_file = open(input_file)
print fma(current_file)

可以肯定,您真正想要的是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上下文管理器来更有效地打开文件(它为您完成了关闭文件的工作)。 在Python 2.6及更高版本中,您不需要在顶部使用花哨的import语句即可使用它,但我习惯于为仍在使用旧Python的任何人添加它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM