Python入门<七>

来源:互联网 发布:淘宝客服要交保证金吗 编辑:程序博客网 时间:2024/06/06 09:12

文件操作

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)

执行:

3M5DVWT27J

  • 导入一个包的实质是运行包里面的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()  
原创粉丝点击