Python与arduino文件IO操作简介

Python与arduino文件IO操作简介

IO操作


open()函数

open()函数是Python内置的方法,应用最为广泛。处理文档的第一步就是打开它。

f=open(‘test.txt’,’w’)

将在当前工作目录新建一个test.txt文件(如果不存在该文件的话,存在则是打开)。后面的w参数表示打开模式为 ‘写’ 模式。常见的模式如下图:

Python与arduino文件IO操作简介

IO常见模式

write()函数

使用该函数可以将字符串写入文件中。被写入的内容必须是字符串。


>>>
f.write(‘hello world!n’)

13

该函数返回被写入文件的字符数。


>>>sq=[‘Pythonn’,’arduinon’]


>>>
f.writelines(sq)

可以使用writelines()函数写入多行字符。

close()函数


>>>
f.close()

该函数会关闭文档,并释放占用的系统资源

Python与arduino文件IO操作简介

被写入的文件

read()函数

读取文件内容。


>>>
f=open(‘test.txt’,’r’)


>>>
f.read()

‘hello world!nPythonnarduinon’

       调用read()函数会一次性读取文件的全部内容。如果文件有10G,内存就爆了,所以保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。

       另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。

       如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:

for line in f.readlines():

   
print(line.strip())
# 删除行尾的’n’

|

with open(file,’r’) as f

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。

所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:

try:

        f = open(‘/path/to/file’, ‘r’)

                print f.read() 

finally:

        if f:    

                f.close()

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with open(‘/path/to/file’, ‘r’) as f:

        print( f.read())

这和前面的try … finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。


>>>with open(‘test.txt’,’r’) as f:

       
print(f.read())

hello world!

Python

arduino

结合arduino

有了上面的基础知识,我们来结合arduino,将读取arduino上的一个电位计的数据保存到文件中。

Python与arduino文件IO操作简介

Python与arduino电位计

Python代码如下:

Python与arduino文件IO操作简介

Python代码

输出结果如下图:

Python与arduino文件IO操作简介

输出结果