您的位置:首页 > 编程语言 > Python开发

python元组,文件的操作

2015-05-18 17:34 197 查看
新手刚刚开始学习python,如有写错或者写的不好的地方,请大家多多指导!
python元组相加
a = (1,2)
b = (3,4)
a + b
元组运用乘法
(1,2) * 4 #在这里边,元组不会被当成数字来计算,而是输出4次
给字母类型的元组拍
t = ('bb,','dd','aa','cc')
tm = list(t)
tm.sort() #然后输出tm
t = tuple(tm)
用for的方式运算
t = (1,2,3,4,5)
l = [x + 20 for x in t]
替换元组
t = (1,[2,3],4)
t[1][0] = 'spa' #t元组中第二个数值之后紧挨着的数值
python文件操作
常见的文件运算
output = open(r'd:\a.py', 'w') 创建输出文件(w是指写入)
input = open('date', 'r') 创建输入文件(r是指读写)
input = open('date') 与上一行想同(r是默认值)
input.read() 把整个文件读取进单一字符串
input.read(N) 读取之后的N个字节,到一个字符串
input.readline() 逐行读取,第一次读取第一行,第二次读取下一行
alist = input.readlines() 读取整个文件到字符串列表
output.write(as) 写入字节字符串到文件
output.writelines(alist) 把列表内所有字符串写入文件
output.close() 手动关闭(当文件收集完成是会替你关闭文件)
output.flush() 把输出缓冲区刷到硬盘中,但不关闭文件
anyFile.seek(N) 修改文件位置到偏移量N处以便进行下一个操作
for line in open('data'): use line 文件迭代器一行一行的读取
open('f.txt', encoding='latin-1') python3.0unicode文本文件(str字符串)
open('f.bin', 'rb') python3.0二进制byte文件(bytes字符串)

实例应用
myfile = open('myfile.txt', 'w') #创建一个myfile.txt文件,并打开进行写入
myfile.write('hello,world\n')
myfile.write('good bye'\n) #\n表示转行
myfile.close() #关闭文件 然后打开本地目录,看看文件内容是否一样
读取文件
myfile = open('myfile.txt') #打开文件,默认是只读
myfile.readline() #读取第一行
myfile.readline() #读取下一行
把整个文件读取进单一字符串
open('myfile.txt').read() #把所以文件一次性读取完,\n之后的表示下一行
使用打印的方式来读取
print(open('myfile.txt').read()) #这样处理的结果比较清晰,隔行分开
用for的方式来逐行读取文件
for line in open('myfile.txt'):
print(line,end='')
以二进制的方法打开文件
data = open('myfile.txt', 'rb').read() #这样的话效果不太明显,可以创建文本写入数字开看看
data[4:8]
data[0]
bin(data[0]) #二进制的方式显示一个文件

文件存储
x, y, z = 43, 44, 45
s = 'spam'
d = {'a': 1,'b': 2}
l = [1,2,3]
f = open('data.txt', 'w')
f.write(s + '\n') #直接将s插入然后转行
f.write('%s,%s,%s\n' % (x,y,z))
f.write(str(l) + '$' str(d) + '\n') #str输出l + str输出的d
然后读取看下结果
a = open('data.txt').read()
print(a)
去掉多余的行
f = open('data.txt')
line = f.readline()
line.rstrip() #移除掉用了转行的\n
创建2进制文件
d = {'a': 1,'b': 2}
f = open('datafile.pk', 'wb')
import pickle
pickle.dump(d, f)
f.close()
想读取的时候,因为转换成二进制了,还要用pickle读取回来
f = open('datafile.pk', 'rb')
a = pickle.load(f) #在这不知道是什么原因,有时候这样定义的话会报错
pickle.load(f) #如果报错的话,就这样来读取
直接打开二进制文件
open('datafile.pk', 'rb').read() #显示的就是一堆二进制数字,而不是插入的数值

使用struct模块来进行二进制文件的打包和解析
首先来进行创建
f = open('data.bin', 'wb')
import struct
data = struct.pack('>i4sh',7,'spam', 8)
f.write(data)
f.close()
然后读取
f = open('data.bin', 'rb')
data = f.read()
values = struct.unpack('i4sh', data) #然后输出values

新手刚刚开始学习python,如有写错或者写的不好的地方,请大家多多指导!
本文出自 “斗月” 博客,请务必保留此出处http://douyue.blog.51cto.com/10174393/1652464
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: