python之IO操作

文件io操作

语法

file = open(filename,mode='r',encoding=None)
  • filename:文件路径(绝对路径或者相对路径)
  • mode:文件打开模式
  • encoding:文件编码格式,常用utf-8

mode参数

r默认以只读方式打开文件,文件的指针将会被放在文件的开头
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式,一般用于非文本文件等
r+打开一个文件用于读写,文件指针将会房子文件的开头
w打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,如果文件不存在,创建新文件
wb标识以二进制写方式打开,只能写文件,如果文件不存在,创建该文件,如果文件已存在,则覆盖写。
w+可读可写,打开创建新文件并写入数据,如果文件已存在,则覆盖写入
a追加写入,如果文件已存在,文件指针将会放在文件的结尾
a+追加读写,与a一样,并多个读的功能,但是要注意移动指针位置。

file对象常用函数

file.close()关闭文件,关闭后文件不能再进行读写操作
file.read([size])从文件读取指定的字节数,如果为给定或为负则读取所有
file.readline([size])读取整行,包括"\n"字符。如果指定了一个非负数的参数,则返回指定大小的字节数
file.readlines()读取所有行并返回列表
file.seek(offset[,where])移动文件读取指针到指定为欸之,可选
file.tell()返回文件当前位置
file.write(str)向文件中写入指定字符串
file.writelines(sequence)向文件中写入一序列的字符串

excel读取文件

使用xlrd

import xlrd
#使用xlrd 的函数打开本地文件,并用变量存储
workbook = xlrd.open_workbook('data.xlsx')
#获取工作表
sheets = workbook.sheets()#获取所有工作表组成list,具体某个表用下标
sheetOne = sheets[0]


sheetNames = workbook.sheet_names()#返回工作表名称组成的列表
sheetOne = workbook.sheet_by_name(sheetNames[0])

row = sheetOne.nrows #行数
col = sheetOne.cols #列数

#用for循环遍历行数,输出每行
for i in range(row):
	each_row = sheetOne.row_values(i) #每行的值是个list
	print(each_row)
#用for遍历列数,输出每列
for i in range(col):
	each_col = sheetOne.col_values(i) #每行的值是个list
	print(each_col)

#精确到单元格
#尝试输出第2行,第2列的值,读取列表的方式
print(sheetOne.row_values[1][1])
#单元格.value的值
print(sheetOne.cell(8,1).value)
print(sheetOne.cell_value(8,1))


#用循环输出所有单元格的内容
# 方法1. 
for i in range(row):
	each_row = sheetOne.row_values(i) #得到list
	for each in eachrow:#直接遍历列表
		print(each)

#方法2。
for i in range(row):
	for j in range(col):
		print(sheetOne.cell_value(i,j))

使用xlwt
import xlwt
#创建工作簿
wb = xlwt.Workbook()
#创建工作表
sheet = wb.add_sheet('newSheet')
#向第一行第一列写入0
sheet.write(0,0,'0')
#向第一行第3列写入haha
sheet.write(0,2,'haha')
#循环嵌套,在第二行开始写入乘法表
for i in range(1,10):
	for j in range(1,i+1):
		sheet.write(i,j-1,str(j)+'x'+str(i)+'='+str(i*j))
#保存文件
wb.save('newExcel.xls')
使用xlutils模块修改excel
import xlrd
from xlutils.copy import copy

#xlrd读取工作簿
wb = xlrd.open_workbook('某公司贸易数据.xlsx')

#复制一份工作簿用来写入
copyed = copy(wb)

#获取复制来的工作簿的工作表
sheetOne = copyed.get_sheet(0)

#使用write()写入
sheetOne.write(3,0,'我是更改的内容')

#保存,如果保存的文件名存在则覆盖,不存在则保存个新的
copyed.save('new新村的.xls')
使用openpyxl操作excel

from openpyxl import Workbook

#实例化对象,创建工作簿
wb = Workbook

# 使用第一张工作表
sheet = wb.active

#给表取个名字
sheet.title = '表的名称'

#给表增加内容
sheet.append([1,2,3])

#保存工作簿
wb.save('new1.xls')

json

json(javascript object notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。josn采用完全独立于语言的我呢本格式,但是也是用了基于c语言家族的习惯,这些特征使json称为理想的数据交换语言,已于人阅读和编写,同时也易于机器解析和生成。

json模块提供了四个功能:dumps、dump、loads、load

  • dumps把数据类型转换成字符串
  • dump把数据类型转换成字符串并存储再文件中
  • loads把字符串转换成数据类型
  • load把文件打开从字符串转换成数据类型

os模块的方法

os.getcwd():获取档期那工作目录,即当前python脚本工作的目录路径
    
os.chdir("dirname"): 改变当前脚本工作目录,相当于shell下cd
    
od.curdir 返回当前目录

os.pardir 获取当前目录的父目录字符串名

os.makedirs('dirname1'):可生成多层递归目录
    
os.removedirs('dirname'):若目录为空,则删除,并递归到上一级目录,若也为空则删除

os.mkdir('dirname')生成单机目录,相当于shell张的mkdir dirname

os.rmdir('dirname')删除单极空目录,若牡蛎不为空则无法删除,报错

os.listdir('dirname')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove() 删除一个文件

os.rename('oldname','newname')重命名文件/目录
os.access(path,mode) 检验权限模式

os.chflags(path,flags) 改变当前工作目录

os.chmode(path,mode) 更改权限

os.chown(path,uid,gid) 更改文件所有者

os.chroot(path) 改变当前进程的根目录

os.closerange(fd_low,fd_high) 关闭所有文件描述符

os.dup(fd) 复制文件描述符fd

os.dup2(fd,fd2) 将一个文件描述符fd复制到另一个fd2

os.fchild(d) 通过文件描述符改变当前工作目录

os.fchmod(fd,mode) 改变一个文件的访问权限,该权限由参数fd指定,参数mode使unix下的访问权限

os.fstartvfs(fd) 返回包含文件描述fd的文件的文件系统的信息

os.fsync(fd) 强制将文件描述符为fd的文件写入硬盘

os.ftruncate(fd,length) 裁剪文件描述符fd对应的文件,所以它最高不能超过文件大小
os.link(src,dst) 创建硬链接,名为参数dst,指向参数src

os.lseek(fd,pos,how) 设置文件描述符fd当前文职为pos,how方式修改:seek_set0设置从文件开始的计算pos,SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效
    
os.lstat(path) 像stat(),但是没有软链接

os.major(device) 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。

os.makedev(major,minor) 以major和minor设备号组成一个原始设备号

os.pathconf(path,name)返回相关文件的系统配置信息。

os.pipe() 创建一个管道,返回一对文件描述符(r,w)分别为读和写

os.popen(command[mode,[bufsize]]) 从一个 command 打开一个管道

os.stat_float_time([newvalue]) 决定stat_result是否以float对象显示时间戳

os.symline(src,dst) 创建一个软链接

os.tcgetpgrp(fd) 返回与终端fd关联的进程组为pg

os.tempnam([dir,[prefix]]) 返回唯一的路径用于创建临时文件


os.tepfile() 返回一个打开的模式为(w+b)的文件对象,文件对象没有文件夹入口,没有文件描述符,将会自动删除。

os.utime(path,times) 返回指定的path文件的访问和修改的时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农先生eee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值