码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础 (下)

时间:2018-03-27 14:31:22      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:文件中   只读   idt   模块   body   image   移动文件   ros   数据   

一、读写文件

1. 打开文件:  open(filename, mode)。 mode有如下几种模式,默认为只读(r)。

技术分享图片      技术分享图片

2. 写入文件

f = open("/home/test.txt", "w")

# f.write(s) 将s写入到文件中, 然后返回写入的字符数。
num = f.write("Come on baby!\n Let‘s go party")
print(num)

# 如果要写入非字符串的数据, 需要先转换为字符串:
value = (amy, 14, China)
s = str(value)
f.write(s)

f.close()

3. 读取文件

f = open("/home/test.txt", "r")

str = f.read()       # f.read(size) 读取一定数目的数据, 当size被忽略或者为负, 将读取该文件的所有内容。
str = f.readline()   # f.readline() 读取一行,换行符为‘\n‘。 当返回一个空字符串, 说明已经读取到最后一行。
str = f.readlines()  # f.readlines()读取所有行,如果设置可选参数sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
print(str)

# 迭代文件对象然后读取每行
for line in f:
    print(line, end=‘‘)
    
f.close()

4. 移动文件位置

f.tell()  返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

f.seek()  改变文件当前的位置, 语法: f.seek(offset, from_what)    from_what为0表示从文件开头移动, 1表示当前位置, 2表示文件的结尾,默认为0
  seek(x,0) : 从起始位置即文件首行首字符开始移动x个字符
  seek(x,1) : 表示从当前位置往后移动x个字符
  seek(-x,2):表示从文件的结尾往前移动x个字符

f = open(/home/test.txt, rb+)
f.write(b0123456789abcdef)
f.seek(5)     # 移动到文件的第六个字节 
f.read(1)     # b‘5‘
f.seek(-3, 2) # 移动到文件的倒数第三字节
f.read(1)     # b‘d‘
f.close()

5. pickle模块 - 对象序列化

a.将数据对象保存到文件

import pickle

data1 = {a: [1, 2.0, 3, 4+6j],
         b: (string, uUnicode string),
         c: None}

list1 = [1, 2, 3]
list1.append(list1)

f = open(data.pkl, wb)
pickle.dump(data1, f)     # 使用 protocol 0
pickle.dump(list1, f, -1) # 使用最高的协议
f.close()

b.从文件中重构python对象

 

Python基础 (下)

标签:文件中   只读   idt   模块   body   image   移动文件   ros   数据   

原文地址:https://www.cnblogs.com/anxiao/p/8656555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!