python文件操作
来源:互联网 发布:php.exe不是内部命令 编辑:程序博客网 时间:2024/06/04 00:41
CSV文件
import csv,codecs
bid_info=csv.DictReader(open('test.csv','r'))
dict_data=[]
for lines inbid_info:
if bid_info.line_num ==1:#跳过第一行
continue
else:
dict_data.append(lines)
#使用file.tell() 读取指定字节数的内容
file =open('src.txt', 'rb')
file2 =open('src2.txt','wb')
file2.write(codecs.BOM_UTF8)
sizehint= 100 # 200M
position= -1 #使用readlines不受大小限制,必须用read
print file.tell()
while file.tell() -position > 0:
position = file.tell()
print position
lines = file.read(sizehint)
file2.write(lines)
print lines
csvfile1 =file('src.csv','rb')
fin = csv.reader(csvfile1)
for Eachline in fin:
spoken = Eachline[0].strip().decode('gbk','utf-8') #可以设置列的索引
print spoken
csvfile2 =file('out.csv','wb')
csvfile2.write(codecs.BOM_UTF8) #设置写入的格式
writer = csv.writer(csvfile2)
writer.writerow(["原文","百度翻译","谷歌翻译"])
data = []
writer.writerows(data)
注:windows下使用r或者w,会自动空一行空行,所以要用二进制写rb或者wb
XLS文件
#coding=utf-8#platform=python2.7import xlrddef readdata(): data_src = xlrd.open_workbook("src.xls")# table = data_src.sheets()[0] #通过索引顺序获取# table = data_src.sheet_by_index(0) #通过索引顺序获取 table = data_src.sheet_by_name("sheet1")#通过名称获取 Row = table.row_values(0) #获取 行 数据,结果为数组 Col = table.col_values(0) #获取 列 数据,结果为数组 nrows = table.nrows #获取行数 ncols = table.ncols #获取列数 cell_A1 = table.cell(0,0).value #单元格的索引 # # 简单的写入 # # import xdrlib,sys # row = 0 # col = 0 # # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error # ctype = 1 value = '单元格的值' for i in range(table.nrows):#按列读取 for j in range(table.ncols): print table.row_values(i) print table.col_values(j) print table.cell(i,j) # # #时间的处理 # import datetime # xlrd.xldate_as_tuple(table.cell(2,2).value,0)#转化为元组 # xlrd.xldate.xldate_as_datetime(table.cell(2,2).value, 1) # datetime.datetime(2018,7,9,0,0)from pyExcelerator import Workbookdef writedata(): w = Workbook() #创建一个工作簿 ws = w.add_sheet('sheet1')#创建一个工作表 # ws.write(1,1,txt.decode('gbk'))#中文转码 ws.write(0,0,'bit')#在1行1列写入bit ws.write(0,1,'huang')#在1行2列写入‘huang for i in range(100): for j in range(100): ws.write(i,j,i+j) w.save('src.xls')#保存if __name__ =='__main__': writedata() readdata()# 安装xlwt包 pip install xlutils 就会自动把xlutils和xlwt全都安装了from xlutils import copyfrom xlrd import open_workbookfrom xlwt import easyxfdef wxlwt(): rb = open_workbook('samples.xls') r_sheet = rb.sheet_by_index(0) wb = copy(rb) w_sheet = wb.get_sheet(0) #在此处写入 w_sheet.write(1,2,'dfsa') wb.save("new.xls") #或者直接复制,需要注意的是copy之后就会失去格式,但是能够在已经存在的xls中追加数据 from xlutils.copy import copy w = copy('book1.xls') w.get_sheet(0).write(0,0,'foo') w.save('book2.xls') #修饰表格 styleBlueBkg = easyxf('pattern:pattern solid, fore_colour sky_blue;'); styleBold = xlwt.easyxf('font:bold on') styleBoldRed = xlwt.easyxf('font:color-index red,bold on') headerStyle = styleBoldRed; wb = xlwt.workbook() ws = xlwt.add_sheet(gConst['xls']['sheetName']) ws.write(0,0,'Header',headerStyle) ws.write(0,1,'CatalogNumber',headerStyle) ws.write(0,2,'PartNumber',headerStyle) ws.sace(gConst['xls']['fileName'])
OS包
os.rename("wenben.txt","shuaiqi.txt")
可以是相对或者绝对路径
os.mkdir("happy")
在所运行的文件下建立目录
os.rmdir("happy")
在所运行的文件下删除目录
os.chdir("/home")
改变所运行的目录
os.getcwd()
给出当前目录
数据的处理
打开文件
.open()
data_file = open(file_name,"rb")
读取文件
.reader()
data = csv.reader(file(data_set,"rb"))
读取某一列csv
for user in data:
print user[0] # user[0]表示第一列数据
print user[1] # user[1]表示第二列数据
spoken = Eachline[column].strip().decode('gbk', 'utf-8') #抽取列,改成u
分词,给多变量赋值
name,pwd=data.split(",")
删除多于字符
name=name.strip('\t\r\n')
写入器
.writer()
WRITE = csv.writer(csvfile, dialect='excel')
写入一行
.writerow([])
WRITE. writerow(['a', '1', '1', '2', '2'])
写入一个数组
.writerows([data])
data = [("c","n","m"),("c","n","m"),("c","n","m")]
writer.writerows(data)
EXCEL相关
excle处理的数据1个sheet不能超过36656行
通过xlwt只能写入xls文件,不能写入xlsx文件。文件虽然能生成,但是用excel打不开(测试环境为excel2013)。
通过xlwt.Formula产生的xls文件虽然能正常打开,但是公式其实是非常不稳定的,关闭的时候会提示公式已经修改,是否保存之类的。产生的xls文件里面涉及公式的单元格不能被xlrd正常读取(无论公式本身还是数值)
import xlrd #读
import xlwt #写(默认的pip里面没有)
file相关命令
file.closed
返回true如果文件已被关闭,否则返回false。
file.mode
返回被打开文件的访问模式。
file.name
返回文件的名称。
file.softspace
如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
file.close()
关闭文件,关闭文件之后不能读写,2.0以后自动关闭
file.flush()
将缓冲区的数据like写入文件,而不是被动等待输出缓冲区写入
file.fileno()
返回一个整型的文件描述符(file descriptor FD整型),可以用在如os模块的read方法等一些底层操作上。
file.isatty()
如果文件连接到一个终端设备返回 True,否则返回 False。
file.next()
返回文件下一行。
file.read([size])
从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size])
读取整行,包括/n
file.readlines([sizehint])
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizhint较大,因为需要填充缓冲区。
file.seek(offset[, whence])
设置文件当前位置
file.tell()
返回文件当前位置。
file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str)
将字符串写入文件,没有返回值。
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
打开文件的方式(如果在windows系统下,用二进制写,因为否则会写入一行插入一空行)
模式
描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
注意,此方法每插入一条数据会产生空行
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
注意,此方法每插入一条数据会产生空行
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
- Python 文件操作常用操作
- [python]python操作xml文件
- Python文件操作
- python文件目录操作
- Python文件操作
- Python文件操作
- python 文件操作
- python 文件操作
- Python 文件操作
- python 文件操作
- Python文件操作
- python 文件读写操作
- Python文件读写操作
- python文件目录操作
- Python的文件操作
- python常见文件操作
- python - 文件操作
- python文件操作
- JS模拟超市简易收银台小程序
- 深入理解jvm笔记1
- UnityShader——玩弄GlobalFog
- BZOJ3669: [Noi2014]魔法森林(LCT)
- vmware安装centos
- python文件操作
- dfs 练习
- 手把手教你玩转SOCKET模型:完成例程(Completion Routine)篇
- python3.5使用for(学习笔记)
- Thread与ThreadLocal同步机制的比较
- CSS3基础(3)——CSS3 布局属性全接触
- Spring整合Mybatis
- sqlserver、mysql、oracle各自的默认端口号
- Kotlin