设为首页 加入收藏

TOP

day08(一)
2019-05-24 16:06:01 】 浏览:106
Tags:day08

1、文件操作

  1.1、对文件的读

 1 # 事先在E盘下创建一个文本文档并读取
 2 f = open('E:\新建文本文档.txt',mode='r',encoding='ANSI')
 3 content = f.read()
 4 print(content)
 5 f.close()
 6 
 7 # 事先在项目下创建一个文本文档,再去读它
 8 f = open('demo',mode='r',encoding='utf-8')
 9 content = f.read()
10 print(content)
11 f.close()
12 
13 # 以二进制打开,这种读取方式主要用于非文字文件
14 f = open('demo',mode='rb')
15 content = f.read()
16 print(content)
17 f.close()

  1.2、对文件的写

 1 # 没有此文件就会创建文件,已有此文件就会将源文件中的内容删除,再写。
 2 # 注意写的时候光标在内容的前面
 3 f = open('demo1',mode='w',encoding='utf-8')
 4 f.write('只写,再添加')
 5 f.close()
 6 
 7 # wb
 8 f = open('demo2',mode='wb')
 9 f.write('只写,再添加'.encode('utf-8'))
10 f.close()

  1.3、追加

1 # 追加:a
2 f = open('demo2',mode='a',encoding='utf-8')
3 f.write(',追加')
4 f.close()
5 
6 # 二进制追加:ab
7 f = open('demo2',mode='ab')
8 f.write(',二进制追加'.encode('utf-8'))
9 f.close()

  1.4、读写操作

 1 # 先读,再写:r+
 2 f = open('demo2',mode='r+',encoding='utf-8')
 3 print(f.read())
 4 f.write(',先读,再写')
 5 f.close()
 6 
 7 # 在读写模式下,进行写读
 8 # 若demo下的内容为python,我先写入aaa,再进行读,会发现读出来的内容是hon,而demo下的内容是aaahon
 9 # 请记住,在读写模式下进行写读,写入的内容会从前往后,替换原有的内容,读出的内容是没有被替换的内容
10 f = open('demo',mode='r+',encoding='utf-8')
11 f.write('aaa')
12 print(f.read())
13 f.close()
14 
15 # 以二进制进行读写
16 f = open('demo2',mode='r+b')
17 print(f.read())
18 f.write(',以二进制类型读写'.encode('utf-8'))
19 f.close()

  1.5、写读操作

# 正常的先写再读,虽然能写入内容,但是却读不出来,但是只要在写之后加一个f.seek(0),将光标移到最前面,就可以读出来了
f = open('demo2',mode='w+',encoding='utf-8')
f.write('写读')
f.seek(0)
print(f.read())
f.close()

# 以二进制进行写读
f = open('demo2',mode='w+b')
f.write('以二进制写读'.encode('utf-8'))
f.seek(0)
print(f.read())
f.close()

  1.6、追加之后再读取

# a是追加,追加之后对他进行读会报错
f = open('demo2',mode='a',encoding='utf-8')
f.write('追加')
print(f.read())
f.close()

# 使用a+之后,对他进行追加,再将光标移动到0,再读就可以了
f = open('demo2',mode='a+',encoding='utf-8')
f.write('追加')
f.seek(0)
print(f.read())
f.close()

  1.7、一些功能讲解

    1.7.1、截取源文件的字符

 1 f = open('demo2',mode='r+',encoding='utf-8')
 2 content = f.read(3) # 读出来的都是字符,读取前三个
 3 print(content)
 4 f.close()
 5 
 6 f = open('demo2',mode='r+',encoding='utf-8')
 7 f.seek(2) # 定位到第三个,读剩下的。
 8 content = f.read()
 9 print(content)
10 f.close()

    1.7.2、对seek功能的讲解

# 若demo2中的内容是中文,如:你好啊
f = open('demo2',mode='r+',encoding='utf-8')
f.seek(3) # result:好啊
f.seek(2) # 会报错
content = f.read()
print(content)
f.close()
# 解释:seek定位是按照字节来定位的,一个中文三个字节,若seek(3)则正好定位到第二个字,若小于三,就定位不到第一个,就会报错

    1.7.3、tell()、readable()、readline()、readlines()、truncate()

f = open('demo',mode='r+',encoding='utf-8')
content = f.read()
print(content)
print(f.tell())# 得到当前光标的位置
print(f.readable())# 判断是否可读
print(f.readline())# 一行一行的读
print(f.readlines())# 每一行当成列表中的一个元素,添加到list中
f.truncate(2)# 从源文件中截取字符串,源文件会被改变
f.close()

    1.7.4、对文件进行for循环

1 对文件进行for循环
2 f = open('demo',mode='r+',encoding='utf-8')
3 for ln in f:
4     print(ln)

    1.7.5、with open()

1 # 写close可能有时候会忘记写,使用with open就不需要close
2 with open('demo',mode='r+',encoding='utf-8') as f:
3     print(f.read())
4 
5 # 同时打开多个进行操作
6 with open('demo',mode='r+',encoding='utf-8') as f,\
7         open('demo',mode='r',encoding='utf-8') as f1:
8     print(f.read())
9     print(f1.read())

    1.7.6、登录注册功能的应用

 1 username = input('请输入用户名')
 2 p
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Scrapy-redis分布式爬虫爬取豆瓣.. 下一篇Django基础——ORM字段和字段参数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目