Python-读写文件

一、读写文件思路:

1、打开文件

2、对文件进行读/写   三种模式:r w a,默认用r

3、关闭文件

二、打开文件

open()

1、有没有清空以前的内容

2、能不能读到东西

3、文件不存在的时候会不会报错

# open(r'e:\user\niuhanyang\xxxx\a.txt',)#原字符

有路径的话,用r

三、读文件

文件名称为“文件读写”,

文件内容为:“哈哈哈 呵呵呵 哟哟哟”,分行显示。

读文件内容代码如下:

1、读取文件里面的所有内容

f = open(r'文件读写',encoding='utf-8')
#
print('read',f.read())# 获取文件里面的所有内容
# read 哈哈哈
# 呵呵呵
# 哟哟哟

2、读取文件内一行的数据

f = open(r'文件读写',encoding='utf-8')
print('readline',f.readline())# 读取文件一行的数据
# readline 哈哈哈

3、获取文件里面所有的数据,每一行的数据放到一个list里面

f = open(r'文件读写',encoding='utf-8')
print('readlines',f.readlines())# 获取文件里面所有的数据,每一行的数据放到一个list里面
# readlines ['哈哈哈\n', '呵呵呵\n', '哟哟哟\n']

四、写文件

1、写完文件后需要读文件时,需要将文件指针移动到最前面,使用f.seek(0)

f = open(r'文件读写','a+',encoding='utf-8')
f.write('adbceww')
f.seek(0)#移动文件指针到最前面
print(f.read())
# 哈哈哈
# 呵呵呵
# 哟哟哟
# adbceww

2、传一个list,然后把list里面的每一个元素写入到文件中

f = open(r'文件读写','a+',encoding='utf-8')
names = ['lxy\n','zyf\n','zxd\n','lcs\n']
# for name in names:
#     f.write(name+'\n')  
f.writelines(names) #传一个list,然后把list里面的每一个元素写入到文件中,但是元素必须是str类型
f.seek(0)#移动文件指针到最前面
print('read',f.read())
f.close()#关闭文件
# 输出结果:
# read 哈哈哈
# 呵呵呵
# 哟哟哟lxy
# zyf
# zxd
# lcs

文件打开的三种模式:

# 文件打开的三种模式:只读模式、 写模式、 追加模式

#                       r        w
# 只能读 会覆盖以前文件里面的
# 不能写 内容,不能读
# 文件不存在会报错 文件不存在,会创建文件

# 读写模式 r+ 打开不存在的文件时也会报错
# 写读模式 w+
# 只要和r有关的,文件不存在肯定会报错(即r、r+打开不存在的文件都会报错)
# 只要和w有关的,文件内容肯定会被清空

a只能读不能写

# 追加模式 a+
# 能读,能写,不会清空以前的内容,文件不存在会创建

 

 

r、r+打开不存在的文件都会报错,r、r+只能读不能写,写会出问题


names = ['fd','lhy','hzy','wq']
new_name = '\n'.join(names)
f.write(new_name)
f.close()

 

 

numbers = [1,2,3,4,56]
for index in range(len(numbers)):
    numbers[index] = str(numbers[index])
print(numbers)
f.writelines(numbers)
f.close()

 在文件内容的开始写入内容要怎么做:

方式一(繁琐):

f = open('a.txt','a+',encoding='utf-8') #三种模式
f.seek(0)
result = f.read()
new_result = 'aaaaa'+result
f.close()
f2 = open('a.txt','a+',encoding='utf-8') 
f2.write(new_result)
f2.close()

 

方式二:

f = open('a.txt','a+',encoding='utf-8') #三种模式
f.seek(0)
result = f.read()
new_result = result.upper()
f.seek(0)# 清空文件内容之前要将指针放在最前面
f.truncate() #清空文件内容
f.write(new_result)
f.close()

 

 

练习题:
#   reg.py
#1、注册的时候还要校验用户是否存在,账号密码存在在文件里面
    #输入为空的
    login.py
#2、登录的时候从里面存账号密码的文件里面获取到账号密码,然后判断
    #需要校验用户是否存在
    #输入为空的
 
posted @ 2018-06-08 16:00  灿烂初秋  阅读(186)  评论(0编辑  收藏  举报