python文件读写--更新部分技巧

目录

DataFrame函数表

python基本IO

项目内文件操作

其他文件操作符

 EXCEL操作:


DataFrame函数表

python文件读写--更新部分技巧_第1张图片

python基本IO

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)

 python文件读写--更新部分技巧_第2张图片

 python文件读写--更新部分技巧_第3张图片

写文件,覆盖写

file = open("txt.txt",'w')
file.write('123456')

python文件读写--更新部分技巧_第4张图片

 python文件读写--更新部分技巧_第5张图片

 续写文件

 

file = open("txt.txt",'a')
file.write('123456')

python文件读写--更新部分技巧_第6张图片

 

 文件定位

 

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()

 python文件读写--更新部分技巧_第7张图片

 python文件读写--更新部分技巧_第8张图片

file3 = open("txt.txt",'r+')
file3.seek(6)
file3.write('2')
file3.close()

python文件读写--更新部分技巧_第9张图片

*回车也算一个位置

其他文件操作符

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 权限:

模式 r r+ w w+ a a+
+ +   +   +
  + + + + +
创建     + + + +
覆盖     + +    
指针在开始 + + + +    
指针在结尾         + +

 EXCEL操作:

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')

python文件读写--更新部分技巧_第10张图片

python文件读写--更新部分技巧_第11张图片

追加写:

# -*- 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")  

python文件读写--更新部分技巧_第12张图片

数据库操作:

# -*-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

 

python文件读写--更新部分技巧_第13张图片

python文件读写--更新部分技巧_第14张图片

 

 

你可能感兴趣的:(爬虫项目及相关技能)