Python:文件操作

按照文件组织的形式,python文件可以分为文本文件和二进制文件

文本文件的每一个字节放一个ASCii码,代表一个字符。二进制文件把内存中的数据按照在内存中的存储形式原样 输出到磁盘上存放。

打开与关闭文件:open()、close()

格式:文件对象=open(文件说明符[,打开方式][,缓冲区])

f = open("c:\\a.txt""r"#以读的形式打开文件
#注意文件目录一定要用双\\

打开方式: r w a rb wb ab r+ w+ a+ rb+ wb+ ab+

r 方式只能从内存中输出数据 不能像内存中添加数据

w 只能从内存向该文件写数据 不能从文件向内存输入数据

a 添加 注意当前位置是文档末尾

r+ w+ a+ 可以写入和读取

文件属性:

f = open("file.txt","wb")

#获取文件名
f.name         # file.txt

#获取文件打开的方式
f.mode         # "wb"

#获取信息:文件是否关闭了
f.closed       # False

#关闭文件
f.close         

读写操作

读操作

read()

  • 变量 = 文件对象.read() 变量 = 文件对象.read([count])
  • re从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
'''
kk.txt 里面内容:abcdefghijklmn
'''
# 打开文件
fo = open("kk.txt", "r+")
str = fo.read(10);
print ("读取的字符串是 : ", str)
# 关闭打开的文件
fo.close()

#输出
读取的字符串是 :abcdefghij 

readline()

  • 读取当前位置到行末的所有字符,包括行结束符
  • 变量=文件对象.readline() 当处于文件末尾 则返回空串 " "

readlines()

从当前位置直到文件末尾的所有行 将所有行构成列表返回值

写操作

write()

  • 在当前位置写入字符串,并返回字符的个数
  • 文件对象.write(字符串) write()执行后并不会自动换行,如果需要换行可以加入\n
f = open("kk.txt", "wb")
f.write( "ya this is kumata!\nyou know,heyo");
 
# 关闭打开的文件
f.close()

 

#linux环境下

$ cat kk.txt 
ya this is kumata!
you know,heyo

 

 

 writelines()

  • 在当前位置依次写入列表中的所有字符串
  • 文件对象.writelines(字符串的元素列表)

二进制文件操作

文件的定位   

文件对象.tell():  返回当前位置

文件对象.seek(偏移[,参考点])      ,seek例子见 CSDN:seek()

struct模块

pack() 把整型号和浮点型打包为二进制的字符串。

unpack()二进制打包成整型号浮点型

 

pickle模块:把对象腌制成二进制文件存储

dump()                  pickle.dump(数据,文件对象)

import pickle
list = ['12','34','ok','很好']
f = open("D:kk.pkl","wb")  #二进制写入
pickle.dump(list,f)
f.close()

 

os模块

#文件重命名 rename() 
os.rename("当前文件名“,”新文件名“)

#文件删除 remove() 
os.remove("文件名")

#在当前目录创建目录 
os.mkdir("新的目录名“)

#改变当前目录
os.chdir("目录“)

#得到当前目录
os.getcwd()

#删除空目录 
os.rmdir("待删除的目录 ")

 

 

 

posted @ 2018-07-31 13:16  kumata  阅读(159)  评论(0编辑  收藏  举报