![](/img/trans.png)
[英]How can i use the values of serial.readline() function in python
[英]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.