python基础教程学习笔记

第十一章 文件和流

  1. flush(),close()会把缓冲区的数据写到硬盘。
  2. read(),readline(),readlines()分别为读取字符,读取行,读取整个文件。
  3. fileinput() 和 readline()非常相似,只是fileinput把全部的行读到创建的xreadlines对象中,而fileinput则把全部的行读到列表。
  4. 文件迭代器不用显式的关闭文件:

    (1) for line in open(filename):
    process(line)#process()是自己定义的一个处理函数
    (2)f.write(‘Hello\n’)#f为一个打开文件的指针

第十二章 创建GUI应用程序

winPython的使用

  1. 得把默认安装目录改到python的安装目录如(“c:/python27”)
  2. wxPython相关的程序只能在cmd窗口运行,因为IDLE是用Tkinker开发的,它会和wxWidget的mainloop()冲突。
    书上的例子,敲太久了,想保存下来。

    #组件的大小会相对于窗口的大小发生变化
    import wx
    def load(event):
        file = open(filename.GetValue())
        contents.SetValue(file.read())
        file.close()
    def save(event):
        file = open(filename.GetValue(),'w')
        file.write(contents.GetValue())
        file.close()
    app = wx.App()
    win = wx.Frame(None, title="Simple Editor", size=(410,335))
    bkg = wx.Panel(win)
    
    loadButton = wx.Button(bkg, label = 'Open')
    loadButton.Bind(wx.EVT_BUTTON,load)#绑定事件load
    
    saveButton = wx.Button(bkg, label = 'Save')
    saveButton.Bind(wx.EVT_BUTTON,save)#绑定事件save
    
    filename = wx.TextCtrl(bkg)
    contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL)
    
    hbox = wx.BoxSizer()
    hbox.Add(filename,proportion=1,flag=wx.EXPAND)
    hbox.Add(loadButton,proportion=0,flag=wx.LEFT,border=5)
    hbox.Add(saveButton,proportion=0,flag=wx.LEFT,border=5)
    
    vbox = wx.BoxSizer(wx.VERTICAL)
    vbox.Add(hbox,proportion=0,flag=wx.EXPAND | wx.ALL,border=5)
    vbox.Add(contents,proportion=1,flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT,border=5)
    bkg.SetSizer(vbox)
    win.Show()
    app.MainLoop()
    

第十三章 数据库支持

使用sqlite数据的一个例子,Python27自带了sqlite数据库。
数据为:
zmy,text2,45,45,67,78,88,9,78,78
xc,text1,45,45,67,78,88,9,78,78
插入数据库代码:

import sqlite3
def convert(value):
    if value.startswith('`'):
        return value.strip('`')
    if not value:
        value = '0'
    return value
conn = sqlite3.connect('foo.db')
curs = conn.cursor()

curs.execute('''
CREATE TABLE foods1234(
id TEXT PRIMARY KEY,
desc TEXT,
water FLOAT,
kcal FLOAT,
protein FLOAT,
fat FLOAT,
ash FLOAT,
carbs FLOAT,
fiber FLOAT,
suger FLOAT
)
''')

query = 'INSERT INTO FOODs1234 VALUES(?,?,?,?,?,?,?,?,?,?)'
for line in open(r'C:\Users\zmy\Desktop\sr28upd\ADD_ABBR.txt'):
    fields = line.split(',')
    vals = [convert(f) for f in fields[:]]
    curs.execute(query,vals)
conn.commit()
conn.close()

查询数据库代码:

import sqlite3
conn = sqlite3.connect('foods1234.db')
curs = conn.cursor()

query = 'SELECT * FROM foods1234'
print query
curs.execute(query)
name = [f[0] for f in curs.description]
for row in curs.fetchall():
    for pair in zip(name,row):
        print '%s: %s' % pair
    print
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值