用wordpress 扒站,阿里云做网站需要些什么软件,汽车报价软件排行榜,网页版视频网站建设需要多少钱一、文件存储 1.文件打开方式 文件打开方式说明r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式rb以二进制只读方式打开一个文件。文件指针将会放在文件的开头r以读写方式打开一个文件。文件指针将会放在文件的开头rb以二进制读写方式打开一个文件。文件指针…一、文件存储 1.文件打开方式 文件打开方式说明r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式rb以二进制只读方式打开一个文件。文件指针将会放在文件的开头r以读写方式打开一个文件。文件指针将会放在文件的开头rb以二进制读写方式打开一个文件。文件指针将会放在文件的开头w以写入方式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在则创建新文件wb以二进制写入方式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在则创建新文件w以读写方式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在则创建新文件wb以二进制读写格式打开一个文件。如果该文件已存在则将其覆盖。如果该文件不存在则创建新文件a以追加方式打开一个文件。如果该文件已存在文件指针将会放在文件结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在则创建新文件来写入ab以二进制追加方式打开一个文件。如果该文件已存在则文件指针将会放在文件结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在则创建新文件来写入a以读写方式打开一个文件。如果该文件已存在文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在则创建新文件来读写ab以二进制追加方式打开一个文件。如果该文件已存在则文件指针将会放在文件结尾。如果该文件不存在则创建新文件用于读写2.txt文本存储 with open(explore.txt, a, encodingutf-8) as file:file.write(\n.join([question, author, answer]))file.write(\n * 50 \n) 3.json文件存储 调用库的loads()方法将JSON文本字符串转为JSON对象可以通过dumps()方法将JSON对象转为文本字符串 - 读取json import jsonstr
[{name: Bob,gender: male,birthday: 1992-10-18
}, {name: Selina,gender: female,birthday: 1995-10-18
}]print(type(str))
data json.loads(str)
print(data)
print(type(data)) - 输出json import jsondata [{name: Bob,gender: male,birthday: 1992-10-18
}]
with open(data.json, w) as file:file.write(json.dumps(data)) 4.csv文件存储 - 写入 首先打开data.csv文件然后指定打开的模式为w即写入获得文件句柄随后调用csv库的writer()方法初始化写入对象传入该句柄然后调用writerow()方法传入每行的数据即可完成写入。writerows()方法同时写入多行 import csvwith open(data.csv, w) as csvfile:writer csv.writer(csvfile, delimiter )writer.writerow([id, name, age])writer.writerow([10001, Mike, 20])writer.writerow([10002, Bob, 22])writer.writerow([10003, Jordan, 21]) - 读取 import csvwith open(data.csv, r, encodingutf-8) as csvfile:reader csv.reader(csvfile)for row in reader:print(row) 二、MySQL关系型数据库存储 1.MySQL连接 import pymysql
# connect()方法声明一个MySQL连接对象
db pymysql.connect(hostlocalhost,userroot, password123456, port3306)
# cursor()方法获得MySQL的操作游标利用游标来执行SQL语句
cursor db.cursor()
# 创建students数据表
sql CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id))
cursor.execute(sql) 2.插入 import pymysqlid 20120001
user Bob
age 20db pymysql.connect(hostlocalhost, userroot, password123456, port3306, dbspiders)
cursor db.cursor()
sql INSERT INTO students(id, name, age) values(%s, %s, %s)
try:cursor.execute(sql, (id, user, age))db.commit()
except:db.rollback()
db.close()
data {id: 20120001,name: Bob,age: 20
}
table students
keys , .join(data.keys())
values , .join([%s] * len(data))
sql INSERT INTO {table}({keys}) VALUES ({values}).format(tabletable, keyskeys, valuesvalues)
try:if cursor.execute(sql, tuple(data.values())):print(Successful)db.commit()
except:print(Failed)db.rollback()
db.close() 3.更新 sql UPDATE students SET age %s WHERE name %s
try:cursor.execute(sql, (25, Bob))db.commit()
except:db.rollback()
db.close()data {id: 20120001,name: Bob,age: 21
}table students
keys , .join(data.keys())
values , .join([%s] * len(data))sql INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE.format(tabletable, keyskeys, valuesvalues)
update ,.join([ {key} %s.format(keykey) for key in data])
sql update
try:if cursor.execute(sql, tuple(data.values())*2):print(Successful)db.commit()
except:print(Failed)db.rollback()
db.close() 4.删除 table students
condition age 20sql DELETE FROM {table} WHERE {condition}.format(tabletable, conditioncondition)
try:cursor.execute(sql)db.commit()
except:db.rollback()db.close() 5.查询 sql SELECT * FROM students WHERE age 20try:cursor.execute(sql)print(Count:, cursor.rowcount)one cursor.fetchone()print(One:, one)results cursor.fetchall()print(Results:, results)print(Results Type:, type(results))for row in results:print(row)
except:print(Error) 三、MongoDB非关系型数据库存储 1.MongoDB连接 import pymongo
# 连接MongoDB
client pymongo.MongoClient(hostlocalhost, port27017)
# 指定数据库
db client.test
# 指定集合(类似于数据表)
collection db.students 2.插入 student {id: 20170101,name: Jordan,age: 20,gender: male
}student1 {id: 20170101,name: Jordan,age: 20,gender: male
}student2 {id: 20170202,name: Mike,age: 21,gender: male
}result collection.insert(student)
result collection.insert([student1, student2])
result collection.insert_many([student1, student2])
print(result) 3.查询 # find_one()查询得到的是单个结果find()则返回一个生成器对象。
result collection.find_one({name: Mike})
result collection.find_all({name: Mike}) - 常用符号 符号类型符号含义示例比较符号$lt小于{age: {$lt: 20}}$gt大于{age: {$gt: 20}}$lte小于等于{age: {$lte: 20}}$gte大于等于{age: {$gte: 20}}$ne不等于{age: {$ne: 20}}$in在范围内{age: {$in: [20, 23]}}$nin不在范围内{age: {$nin: [20, 23]}}功能符号$regex匹配正则表达式name以M开头{name: {$regex: ^M.*}}$exists属性是否存在name属性存在{name: {$exists: True}}$type类型判断age的类型为int{age: {$type: int}}$mod数字模操作年龄模5余0{age: {$mod: [5, 0]}}$text文本查询text类型的属性中包含Mike字符串{$text: {$search: Mike}}$where高级条件查询自身粉丝数等于关注数{$where: obj.fans_count obj.follows_count}4.更新 condition {name: Kevin}
student collection.find_one(condition)
student[age] 25
result collection.update(condition, student)
print(result)# update_many()方法则会将所有符合条件的数据都更新
# update_one()方法则会将单个符合条件的数据都更新 5.删除 # remove()将符合条件的所有数据删除
result collection.remove({name: Kevin})
print(result)
# delete_one()删除第一条符合条件的数据
result collection.delete_one({name: Kevin})
print(result)
print(result.deleted_count)
# delete_many()即删除所有符合条件的数据
result collection.delete_many({age: {$lt: 25}})
print(result.deleted_count)
# deleted_count属性获取删除的数据条数 四、Redis非关系型数据库存储 1.Redis连接 from redis import StrictRedisredis StrictRedis(hostlocalhost, port6379, db0, passwordfoobared)
redis.set(name, Bob)
print(redis.get(name)) 2.键操作 方法作用参数说明exists(name)判断一个键是否存在name键名delete(name)删除一个键name键名type(name)判断键类型name键名keys(pattern)获取所有符合规则的键pattern匹配规则randomkey()获取随机的一个键 rename(src, dst)重命名键src原键名dst新键名dbsize()获取当前数据库中键的数目 expire(name, time)设定键的过期时间单位为秒name键名time秒数ttl(name)获取键的过期时间单位为秒-1表示永久不过期name键名move(name, db)将键移动到其他数据库name键名db数据库代号flushdb()删除当前选择数据库中的所有键 flushall()删除所有数据库中的所有键 3.字符串操作 方法作用参数说明set(name, value)给数据库中键为name的string赋予值valuename: 键名value: 值get(name)返回数据库中键为name的string的valuename键名getset(name, value)给数据库中键为name的string赋予值value并返回上次的valuename键名value新值mget(keys, *args)返回多个键对应的valuekeys键的列表setnx(name, value)如果不存在这个键值对则更新value否则不变name键名setex(name, time, value)设置可以对应的值为string类型的value并指定此键值对应的有效期name: 键名time: 有效期 value值setrange(name, offset, value)设置指定键的value值的子字符串name键名offset偏移量value值mset(mapping)批量赋值mapping字典msetnx(mapping)键均不存在时才批量赋值mapping字典incr(name, amount1)键为name的value增值操作默认为1键不存在则被创建并设为amountname键名amount增长的值decr(name, amount1)键为name的value减值操作默认为1键不存在则被创建并将value设置为-amountname键名 amount减少的值append(key, value)键为name的string的值附加valuekey键名substr(name, start, end-1)返回键为name的string的子串name键名start起始索引end终止索引默认为-1表示截取到末尾getrange(key, start, end)获取键的value值从start到end的子字符串key键名start起始索引end终止索引4.列表操作 方法作用参数说明rpush(name, *values)在键为name的列表末尾添加值为value的元素可以传多个name键名values值lpush(name, *values)在键为name的列表头添加值为value的元素可以传多个name键名values值llen(name)返回键为name的列表的长度name键名lrange(name, start, end)返回键为name的列表中start至end之间的元素name键名start起始索引end终止索引ltrim(name, start, end)截取键为name的列表保留索引为start到end的内容name键名start起始索引end终止索引lindex(name, index)返回键为name的列表中index位置的元素name键名index索引lset(name, index, value)给键为name的列表中index位置的元素赋值越界则报错name键名index索引位置value值lrem(name, count, value)删除count个键的列表中值为value的元素name键名count删除个数value值lpop(name)返回并删除键为name的列表中的首元素name键名rpop(name)返回并删除键为name的列表中的尾元素name键名blpop(keys, timeout0)返回并删除名称在keys中的list中的首个元素如果列表为空则会一直阻塞等待keys键列表timeout 超时等待时间0为一直等待brpop(keys, timeout0)返回并删除键为name的列表中的尾元素如果list为空则会一直阻塞等待keys键列表timeout超时等待时间0为一直等待rpoplpush(src, dst)返回并删除名称为src的列表的尾元素并将该元素添加到名称为dst的列表头部src源列表的键dst目标列表的key5.集合操作 方法作用参数说明sadd(name, *values)向键为name的集合中添加元素name键名values值可为多个srem(name, *values)从键为name的集合中删除元素name键名values值可为多个spop(name)随机返回并删除键为name的集合中的一个元素name键名smove(src, dst, value)从src对应的集合中移除元素并将其添加到dst对应的集合中src源集合dst目标集合value元素值scard(name)返回键为name的集合的元素个数name键名sismember(name, value)测试member是否是键为name的集合的元素name键值sinter(keys, *args)返回所有给定键的集合的交集keys键列表sinterstore(dest, keys, *args)求交集并将交集保存到dest的集合dest结果集合keys键列表sunion(keys, *args)返回所有给定键的集合的并集keys键列表sunionstore(dest, keys, *args)求并集并将并集保存到dest的集合dest结果集合keys键列表sdiff(keys, *args)返回所有给定键的集合的差集keys键列表sdiffstore(dest, keys, *args)求差集并将差集保存到dest集合dest结果集合keys键列表smembers(name)返回键为name的集合的所有元素name键名srandmember(name)随机返回键为name的集合中的一个元素但不删除元素name键值6.有序集合操作 方法作用参数说明zadd(name, *args, **kwargs)向键为name的zset中添加元素memberscore用于排序。如果该元素存在则更新其顺序name 键名args可变参数zrem(name, *values)删除键为name的zset中的元素name键名values元素zincrby(name, value, amount1)如果在键为name的zset中已经存在元素value则将该元素的score增加amount否则向该集合中添加该元素其score的值为amountnamekey名value元素amount增长的score值zrank(name, value)返回键为name的zset中元素的排名按score从小到大排序即名次name键名value元素值zrevrank(name, value)返回键为name的zset中元素的倒数排名按score从大到小排序即名次name键名value元素值zrevrange(name, start, end, withscoresFalse)返回键为name的zset按score从大到小排序中index从start到end的所有元素name键值start开始索引end结束索引withscores是否带scorezrangebyscore(name, min, max, startNone, numNone, withscoresFalse)返回键为name的zset中score在给定区间的元素name键名min最低scoremax最高scorestart起始索引num个数withscores是否带scorezcount(name, min, max)返回键为name的zset中score在给定区间的数量name键名min最低scoremax最高scorezcard(name)返回键为name的zset的元素个数name键名zremrangebyrank(name, min, max)删除键为name的zset中排名在给定区间的元素name键名min最低位次max最高位次zremrangebyscore(name, min, max)删除键为name的zset中score在给定区间的元素name键名min最低scoremax最高score7.散列操作 方法作用参数说明hset(name, key, value)向键为name的散列表中添加映射name键名key映射键名value映射键值hsetnx(name, key, value)如果映射键名不存在则向键为name的散列表中添加映射name键名key映射键名value映射键值hget(name, key)返回键为name的散列表中key对应的值name键名key映射键名hmget(name, keys, *args)返回键为name的散列表中各个键对应的值name键名keys映射键名列表hmset(name, mapping)向键为name的散列表中批量添加映射name键名mapping映射字典hincrby(name, key, amount1)将键为name的散列表中映射的值增加amountname键名key映射键名amount增长量hexists(name, key)键为name的散列表中是否存在键名为键的映射name键名key映射键名hdel(name, *keys)在键为name的散列表中删除键名为键的映射name键名keys映射键名hlen(name)从键为name的散列表中获取映射个数name 键名hkeys(name)从键为name的散列表中获取所有映射键名name键名hvals(name)从键为name的散列表中获取所有映射键值name键名hgetall(name)从键为name的散列表中获取所有映射键值对name键名8.RedisDump RedisDump提供了两个可执行命令redis-dump用于导出数据redis-load用于导入数据。转载于:https://www.cnblogs.com/Iceredtea/p/11094753.html