Android程序猿带你学python第5章--输入与输出(IO)

xiaoxiao2021-02-28  85

导读


在第0章就说过,程序无非就是输入->逻辑->输出。所以如何处理输入和输出就显得非常重要,常见的输入有控制台输入,函数接受参数输入,常见的输出有控制台输出,文件,数据库等

常见的I/O处理


控制台输入输出

>>print("hello") >>s = input("please scan") >>print(s) 这个之前已经用过很多次了

数据持久化 1.文件 打开文件

>>f = open("xxx.txt) #读取文件 >>for line in f: >>print(line)

打开模式 w:写方式打开文件,如果文件存在,清空 r:读方式打开文件 a:追加的方式打开文件,如果文件存在,指针自动到文件尾部 a+:a+读 w+:w+读 b:以二进制打开文件

写文件 f.write(“hello”) //追加还是重写决定于打开的模式和指针的位置 read() readline() readlines() seek()移动 tell()指针目前的位置 pickle/cpickle pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上 //存 prickle.dump(object, file[protocol]) object:序列化对象 file:要写入的文件 protocol:可选项,默认为false,以ASCII格式保存,如果设置为1或true,则以二进制的形式保存 //取 pickle.load(file)

举个例子 #! /usr/bin/env python #coding=utf-8 import pickle l = ["tony","python", 2017, 6] f = open("D:\\test.txt", "wb+") s = pickle.dump(l, f) #必须先关闭,否则pickle.load(f1)会出现EOFError: Ran out of input f.close() f = open("D:\\test.txt", "rb") ll = pickle.load(f) print(ll) ll的输出结果: ["tony","python", 2017, 6] 文件里的内容: €]q (X tonyqX pythonqM?Ke.

shelve 写入

>>s = shelve.open("file") >>s["name"] = "tony" >>s["sex"] = "male" >>s.close()

读取

>>s = shelve.open("file") >>name = s["name] >>sex = s["sex"]

循环读取

>>for k in s : >>print(k + s[k])

修改已有键的值

>>s = shelve.open("file", writeback=true) >>s["name"].append("tony2")

2.数据库–关系型数据库 mysql 下载mysql 连接驱动 PyMySQL https://pypi.python.org/pypi/PyMySQL#downloads 获得数据库连接对象 conn = pymysql.connect(host=’localhost’, port=3306, user=’root’, passwd=’w19920309z’, db=’test_db’,charset=’UTF8’) 获得游标 cur = conn.cursor() 增

self.cur.executemany("insert into users (username, password, email) values (%s,%s,%s)", (("python","123456","python@163c.om"), ("github", "1221", "tony@163.com"))) self.conn.commit()

#还记得之前讲过的string的格式化吗 3种方式 self.execute("update user set username=%s where id=2", ("mypython")) self.conn.commit()

self.cur.execute("select * from users") lines = self.cur.fetchall() for line in lines: print(line) self.cur.scroll(1, "absolute") lines = self.cur.fetchall() for line in lines: print(line)

总结


I/O在实际项目中使用频率非常高,print()常用于一些简单调试,可以在控制台看到流程走到哪了,输出结果是否与期望保持一致 数据库和文件在Web项目里被使用到,用于数据的持久化 在学完下一章异常处理,整个python的语法就全部结束了,可以找一些实际项目练练手,比如搭建一个网站

转载请注明原文地址: https://www.6miu.com/read-61392.html

最新回复(0)