我有这个简单的代码:
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字符。
问题是,在运行脚本时我什么都没回来。我做错了什么,如何按照我的说法进行操作?
答案 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的人中。