Python3学习笔记03-读写文件

1. 读取一个文本文件,可以用下述方式:

myfile=open(r'abc.txt')
x=myfile.read()
print(x)

也可以用下述方式:

with open('abc.txt') as f:
    for line in f:
        print(line.strip())

    with的作用是让Python自动在文件操作完毕后关闭文件。也可以用close()主动关闭。strip的作用是去除读取产生的空行。

2. 写文件

下面代码在文件末尾追加写入:

with open('abc.txt') as f:
    for line in f:
        print(line.strip())
其中参数'a'表示append,追加;如果改为'w',则变为写入(覆盖),无此文件时则创建。其他还有'r+', 'w+', 'rb', 'wb'等,对应于读写、写读、二进制读,二进制写。

其中,文件路径尽量不要出现中文;直接写文件名abc.txt或xxxx/abc.txt表示在程序目录中或其子目录xxx中打开文件。也可写上绝对路径,一般用斜杠即可,用反斜杠时因为反斜杠有时用于转义,所以会出现意外结果,如文件名以n开头,\n就成了换行的意思了。也可以在字符串前加r表示使用原生字符串,如r'abc.txt'。

3. 读写二进制文件

Python提供了一个标准模块pickle用以存取任意对象,很实用,例如:

myfile=open('abc.bin','wb')
myfile.write(b'abcd\nefg')
myfile.close()

myfile=open('abc.bin','r')
x=myfile.read()
print(x)   #分两行打印出abcd和efg
myfile.close()

myfile=open('abc.bin','rb')
x=myfile.read()
print(x)  #打印出b'abcd\nefg'
myfile.close()

4. 文件序列化(二进制)

users=[]
users.append({'id':'richard','pwd':'abc'})
users.append({'id':'vivian','pwd':'bac'})
users.append({'id':'david','pwd':'cab'})
print('这是输入的数据:\n',users)
myfile=open('mydata.bin','wb')
import pickle
pickle.dump(users,myfile)
myfile.close()

print('数据已经写入文件。')

myfile=open('mydata.bin','rb')
x=pickle.load(myfile)
print('这是从文件中读出的数据:\n',x)

猜你喜欢

转载自blog.csdn.net/asanscape/article/details/80164736