Python入门<七>

文件操作

1.open()

open
首先open是python内置的一个打开文件,创建一个file对象的方法。与之相似的方法有个file。其功能上没有太大的区别。
file object = open(file_name [, access_mode][, buffering])
其中file_name是文件名,access_mode是打开文件的模式(如只读,读写),buffering表示访问文件时的寄存行。
access_mode的选项有
r :只读模式打开,文件指针放到文件的开头。(默认模式)
r+ :打开一个文件用于读写,文件指针放到文件的开头。
w :打开一个文件用于写入,若文件存在则覆盖源文件,若不存在则创建。
w+:打开一个文件用于读写。。。
a :打开一个文件用于追加写入,若文件存在,文件指针在文件的结尾。
a+ :打开一个文件用于读写追加,若文件存在,文件指针在文件的结尾。
b :和上述mode都可以组合使用,代表的是以二进制格式。

file对象的属性。
file.closed 判断文件是否关闭
file.mode 判断文件的访问模式
file.name 判断文件的名称

>>> f = open('txt','a+')  
>>> f.read()  
'1\n2\n3\n4\n5\n'  
>>> f.closed  
False  
>>> f.mode  
'a+'  
>>> f.name  
'txt'  
>>>   

2.close() 方法:

file的close方法是用来关闭文件的,当关闭后,不能再操作文件,并且将修改数据同步至文件内。
f.close()

3.write()方法:

file的write方法是将任何的字符串写入一个打开的文件内。
f.write(‘string content …..’)

4.read()方法:

file的read方法式将文件中的内容读出来。但是要注意,第一次调用后,指针会指向文件末尾,导致第二次调用时文件读不出内容。
f.read() 要想打印出文件内容,需要print f.read()

5.seek()方法,文件定位:

file的seek方法可以定位文件指针的位置。seek(offset[,from]),offset表示要移动的字节数,from指点开始移动字节的参考位置。from为0表示文件开头,from为1表示当前位置。from为2表示文件末尾。

>>> f = open('txt','a+')  
>>> f.read()  
'1\n2\n3\n4\n5\nak47m4a1'  
>>> f.read()  
''  
>>> f.seek(0,0)  
>>> f.read()  
'1\n2\n3\n4\n5\nak47m4a1'  

6.flush()方法

file的flush方法可以直接将内部的所有缓冲区中的数据立刻写入文件,而不是被动的等待
f.flush()

7.readline()方法

file的readline读取整行(只有一行),包括‘\n’

8.readlines()方法

读取所有行,并且返回列表。

9.replace()方法

将旧的内容(old_text)使用新的内容(new_text)去替换。
用法file.replace(old_text,new_text)

  • 文件的重命名
    重命名需要Python的OS模块,比如删除,重命名,但是使用前必须导入OS模块。
    语法:
    os.rename(current_file_name, new_file_name)

  • 文件的删除
    语法:
    os.remove(“test2.txt”)

  • 目录的创建目录
    语法:
    os.mkdir(“newdir”)

  • 当前所处位置
    语法:
    os.chdir(“newdir”)

  • 得到所处目录位置
    语法:
    os.getcwd()

模块

  • 模块: 实质上是系统可以找到的以.py结尾的文件

导入模块的路径

  • python的默认搜索路径sys.path
  • 添加自定义的搜索路径时,sys.path是一个列表,
    sys.apth.append(“path”);
  • sys.path.append(“/home/kiosk/1-Pythonv3/day08/code”)
  • sys.path.insert(0,’/home/kiosk’)
    导入一个模块的实质是将模块的文件重新运行一次;

导入模块的方法

import module1,module2
from 模块名 import 函数名
from 模块名 import 函数名 as 函数别名
import 模块名 as 函数别名

模块的分类

  • 内置模块(os,sys,time)
  • 自定义模块
  • 第三方模块 #开源

常用的内置模块

os,sys,time,datetime,json/pickle,shutil,random

python 随机生成验证码

首先随机的生成数字或者字母肯定需要的是random模块。
random是随机数生成器。

import random  
print random.random()  
print random.randint(1,10)  
print random.randrange(1,11)  

以上的是最常见的随机数生成方法,看看打印结果。

0.176575931986  
7  
9  

没错,第一个含义是0到1之间的随机浮点数。
第二个的含义是1到10的int型整数
第三个的含义是1到10的int型整数

利用random去创建一个验证码。

code = []  
for i in range(0,5):  
    if 0 == random.randint(0,2):  
        code.append(str(random.randint(1,9)))  
    else:  
        temp = random.randint(65,90)  
        code.append(chr(temp))  
print ''.join(code)

执行:

3M5DV
WT27J

  • 导入一个包的实质是运行包里面的init.py文件;
  • 导入包的方法:
    import 包名
    from 包名 import 模块名
    import 包名
  • 常用的几种方式
    1)调用模块:from 包 import 模块
    访问:模块.函数()
    2)调用模块:import 模块
    访问:包.模块.函数()

python 操作Mariadb 数据库

首先我使用的是Pycharm,在操作数据库之前需要先导入相关的模块。
这个包叫做MySQLdb,按照网上的教程进行安装。

先看看数据库内要查询的信息。

MariaDB [test]> select * from test.Userinfo;  
+----+-------+----------+  
| id | name  | password |  
+----+-------+----------+  
|  1 | Jack  | red123   |  
|  2 | Tom   | bule456  |  
|  3 | Jerry | cent789  |  
+----+-------+----------+  
3 rows in set (0.00 sec)  

一个简单的查询实例。

#!/usr/bin/python  
# -*- coding: utf-8 -*-  

import MySQLdb  

# 连接数据库  
conn = MySQLdb.connect(host='127.0.0.1'  
                       ,user='root'  
                       ,passwd='123'  
                       ,db='test')  
# 获得一个游标  
cur = conn.cursor()  
# 执行SQL语句  (返回值是查询表中的行数,影响的行数)  
reCount = cur.execute('select * from Userinfo')  
# 获取数据库的信息  
data = cur.fetchall()  
# 关闭数据库  
conn.close()  

print 'The rows of this table is %d' %(reCount)  
print  data  

执行结果:
The rows of this table is 3
((1L, ‘Jack’, ‘red123’), (2L, ‘Tom’, ‘bule456’), (3L, ‘Jerry’, ‘cent789’))

其中的话fetchall() 是返回所有,而fetchone是返回一行数据。

数据库的插入操作:

import MySQLdb  

conn = MySQLdb.connect(host='localhost', \  
                     user='root', \  
                     passwd='123', \  
                     db='test')  
cur = conn.cursor()  

sql = 'insert into Userinfo (id,name,password) values(%s,%s,%s)'  
param = (4,'Laura','Xman007')  

try:  
    cur.execute(sql,param)  
    conn.commit()  
except:  
    conn.rollback()  

conn.close()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值