我该如何使用readline方法?

时间:2012-02-16 00:13:42

标签: python

我有这个简单的代码:

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字符。

问题是,在运行脚本时我什么都没回来。我做错了什么,如何按照我的说法进行操作?

5 个答案:

答案 0 :(得分:2)

你的函数读取一行,但对它没有任何作用:

def fma(f):
    f.readline()

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

答案 1 :(得分:1)

def fma(f):
    f.readline()

f.readline()是一个函数,它返回一个值,在这种情况下是文件中的一行,你需要用这个值“做”某些东西,如:

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

答案 2 :(得分:1)

你的功能没有返回任何东西。

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

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

答案 3 :(得分:1)

脚本应如下:

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)

答案 4 :(得分:1)

您确实想要的是 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及更高版本中,您不需要顶部的精美导入语句来使用它,但我习惯将它包含在仍然使用旧版Python的人中。