python 文件操作总计,python文件操作总计

来源:http://www.sh-fengwen.com 作者:家常菜谱 人气:184 发布时间:2019-09-02
摘要:python 文件操作, 打开文件的几种模式 open('path') #默认只读打开 open('path','r+')#读写模式打开。如果有内容,就会从头覆盖相应字符串的内容open('path','w')#写入,覆盖文件,重新写入。没

python 文件操作,

打开文件的几种模式

open('path') #默认只读打开 open('path','r+') #读写模式打开。如果有内容,就会从头覆盖相应字符串的内容 open('path','w')#写入,覆盖文件,重新写入。没有文件就自己创建 open('path','w+ ')#读写,作用同上 open('path','a')# 写入,在文件末尾追加内容,文件不存在就创建 open('path','a'+)#读写,同上。 最常用 open('path','b') #打开二进制文件 open('path','U')#支持所有的换行符号 实战:登陆注册  

#!/usr/bin/env python
#coding:utf-8
f=open('user.txt','a+')
#单行写入
#f.write("wd:1234")
#多行写入
#names=["pc:123n","panda:123n"]
#f.writelines(names)
#交互式注册
while True:
        name=raw_input('请输入用户姓名:').strip()
        password=raw_input('请输入您的密码:').strip()
        repass=raw_input('请再次输入密码:').strip()
        if len(name)==0:
                print "用户名不能为空,请重新输入!!"
                continue;
        if len(password)==0 or password !=repass:
                print "密码输入有误"
                continue;
        else:
                print "恭喜你,注册成功"
                break;
f.write("%s:%s" %(name,password))
f.close()

 

#!/usr/bin/env python
#coding:utf-8
fo=open("user.txt")
'''
num=1
while True:
        line=fo.readline()
#       print repr(line)
        print "%s-->%s" %(num,line.rstrip("n"))
        num+=1
        if len(line)==0:
                break
'''
#从文件中读取所有字符,并存为字典
dict1={}
content=fo.readlines()   #讲文件结果保存为列表
fo.close()
#print content
for user in content:
        name=user.rstrip("n").split(":")[0]
#       print name
        dict1[name]=user.rstrip("n").split(":")[1]
#print dict1

#判断用户的账号密码。都ok提示登陆成功。否则失败
count=0
while True:
        count+=1
        if count >3:
                print "对不起,您输入的错误次数过多,账户已锁定。请联系管理员"
                break
        name=raw_input('请输入用户姓名:').strip()
        if name not in dict1:
                print "用户名不存在,请重新输入!!"
                continue;
        password=raw_input('请输入您的密码:').strip()
        if password !=dict1[name]:
                print "密码输入有误"
                continue;
        else:
                print "恭喜你,登陆成功"
                break;

  

文件操作, 打开文件的几种模式 open('path') #默认只读打开open('path','r+') #读写模式打开。如果有内容,就会从头覆盖相应字符串的内容...

python 文件操作总结,python文件操作总结

  文件操作对于编程语言的重要性不言而喻,如果数据不能持久保存,信息技术也就失去了意义。

  文件操作的内容包括打开文件,操作文件,关闭文件

一,打开文件

  python中打开文件的函数为open('filename',mode='r',encode='None'),open函数默认返回文件的句柄,我们可以根据句柄来对文件进行增,删,改,查的操作。将句柄赋给我们定义的变量,假设我们定义变量为f,则f=open('filename',mode='r',encode='utf-8') 或者with open('filename') as f。

注意点:

  1.python解释器打开文件时,是对硬盘进行操作,需要内核态才可以操作硬盘,故此时python解释器是调用操作系统的文件读取接口。windows中文版本默认使用GBK编码表,linux默认使用utf-8,所有如果操作的文件在windows下,非GBK编码的,需要在open函数中声明编码类型,使操作系统运用相应的编码规则进行解码读取,防止串码,乱码现象。

  2.open主要有三种模式,读(r),写(w),追加(a),其中,默认为读模式。各个模式的详解,见下文。

二,关闭文件

关闭文件有两组方式:

  1.使用f.close()  ,f为open返回的句柄赋值的变量名。

   2.程序结束后,自动关闭。第一个方法容易造成文件写操作时,数据的丢失。原因是写数据时,数据会先保存在内存中,文件关闭时才会写入硬盘,此时如果文件未关闭,软件因为异常崩溃,导致内存中的数据丢失,且未写入硬盘中。作为第一种关闭方法的优化,是使用:with open('filename') as f 。with会创建一个程序块,将文件操作置于with程序块下,这样with控制块结束,文件也会自动关闭。

语法如下:

with open('f1.txt') as f1 , open('f2.txt') as f2:
    ......

  

三,操作文件

3.1 file的基本方法

方法

功能

F.read([size])  

size为读取的长度,以byte为单位

F.readline([size]) 

如果定义了size,有可能返回的只是一行的一部分 

F.readlines([size]) 

把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分

F.write(str) 

把str写到文件中,write()并不会在str后加上一个换行符

F.writelines(seq) 

把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西

F.close() 

关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其进行操作会产生ValueError 

F.flush()

把缓冲区的内容写入硬盘 ,即将内存中的数据刷新到银盘上

F.fileno() 

返回一个长整型的”文件标签“ 

F.isatty()

文件是否是一个终端设备文件(unix系统中的)

F.tell() 

返回文件操作标记的当前位置,以文件的开头为原点 

F.next()

返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的。 

F.seek(offset[,whence]) 

将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾

F.truncate([size]) 

把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

 

3.2 文件的读取、创建、追加、删除、清空

一,用python创建一个新文件,内容是0到9的整数,每个数字占一行

f = open('f.txt','w')
for i in range(0,10):
    f.write(str(i)+'n')

f.close()

二,文件内容追加,从0到9的10个随机整数

import random
f = open('f.txt','a')
for i in range(0,10):
    f.write(str(random.randint(0,9)))
f.write('n')
f.close()

三、文件内容追加,从0到9的随机整数, 10个数字一行,共10行

import random
f = open('f.txt','a')
for i in range(0,10):
    for i in range(0,10):
        f.write(str(random.randint(0,9)))
    f.write('n')
f.close()

四、把标准输出定向到文件

import sys
sys.stdout = open('stdout.txt','w')

五,文件的读写

5.1,文件打开

f = file(name[, mode[, buffering]])
name 文件名

mode   选项,字符串

buffering   是否缓冲 (0=不缓冲,1=缓冲, >1的int数=缓冲区大小) 

本文由美高梅游戏平台网站发布于家常菜谱,转载请注明出处:python 文件操作总计,python文件操作总计

关键词:

上一篇:Python之路—初识Python,python之路初识

下一篇:没有了

最火资讯