目录
DataFrame函数表
python基本IO
项目内文件操作
其他文件操作符
EXCEL操作:
import pickle
import numpy as np
from random import gauss
a = [gauss(1.5,2) for i in range(1000000)]
path = 'E://DataAnalysis/tools/python3/project/money_analysis/'
pkl_file = open(path+'data.pkl','wb')
pickle.dump(a,pkl_file)
pkl_file.close()
path = 'E://DataAnalysis/tools/python3/project/money_analysis/'
pkl_file = open(path+'data.pkl','rb')
b = pickle.load(pkl_file)
print(b[:5])
读文件
file = open("txt.txt",'r',10)
print file.name
print file.mode
print file.read(2)
写文件,覆盖写
file = open("txt.txt",'w')
file.write('123456')
续写文件
file = open("txt.txt",'a')
file.write('123456')
文件定位
file1 = open("txt.txt",'w')
file1.write('111\n')
file1.write('111\n')
file1.write('111\n')
file1.close()
file2 = open("txt.txt",'r+',10)
print file2.read(6)
print file2.tell()
file3 = open("txt.txt",'r+')
file3.seek(6)
file3.write('2')
file3.close()
*回车也算一个位置
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
权限:
模式 | r | r+ | w | w+ | a | a+ |
---|---|---|---|---|---|---|
读 | + | + | + | + | ||
写 | + | + | + | + | + | |
创建 | + | + | + | + | ||
覆盖 | + | + | ||||
指针在开始 | + | + | + | + | ||
指针在结尾 | + | + |
excel读取:
# -*- coding: UTF-8 -*-
import xlrd
def readExccel (path):
data = xlrd.open_workbook(r""+unicode(path,"utf-8"))
table = data.sheets()[0]
print "本页名称:",
print table.name
print '表行数:',
print table.nrows
print '表列数:',
print table.ncols
print '指定行内容:',
print ', '.join(table.row_values(0))
print '全部打印:\n'
for row in range(0,table.nrows):
for num in table.row_values(row):
print num,
print "\n"
if __name__ == "__main__":
readExccel("C:\Users\hongyuan\Desktop\常用\下载文件\采销分类.xlsx")
excel写入:覆盖写,不存在文件则新建文件
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('SheetOne')
for i in range(0,10):
for j in range(0,10):
sheet.write(i, j, i+j) # 第0行第一列写入内容
wbk.save('excelOne.xls')
追加写:
# -*- coding: UTF-8 -*-
import xlrd
import xlwt
from xlutils.copy import copy
rexcel = xlrd.open_workbook("excelOne.xls")
excel = copy(rexcel)
table = excel.get_sheet(0)
for i in range(10,20):
for j in range(0,10):
table.write(i, j, i+j)
excel.save("excelOne.xls")
数据库操作:
# -*-coding:utf-8 -*-
import MySQLdb #首先必须装这两个包
import ConfigParser
cf=ConfigParser.ConfigParser()
cf.read("conf.ini")
DATABASE=cf.get("app_info","DATABASE")
USER=cf.get("app_info","USER")
PASSWORD=cf.get("app_info","PASSWORD")
HOST=cf.get("app_info","HOST")
PORT=cf.get("app_info","PORT")
def mysql(sql):
try:
conn=MySQLdb.connect(HOST,USER,PASSWORD,DATABASE,charset='utf8' )
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()
conn.commit() #这个对于增删改是必须的,否则事务没提交执行不成功
cur.close()
conn.close()
return rows
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
def operation():
#查询
select = mysql('select * from test')
#插入
insert = mysql('insert into test (name,number,`type`) values("%s",%d,"%s")'%('jzhou',100,'VIP'))
#更新
mysql('update test set number=%d where name="%s"'%(99,'jzhou'))
#删除
delete = mysql('delete from test where number = %d and type= "%s" '%(101,'jzhou'))
return select #我返回这个是为了下面发送邮件用的,顺便增加个发送邮件的功能
if __name__ == "__main__":
operation()
[app_info]
DATABASE=test
USER=root
PASSWORD=123456
HOST=localhost
PORT=3306