文本文档的读写

最重要的open()方法将返回一个file对象,经常使用的两个参数为open(filename,mode)

其中,filename为file保存的地址,可以是本地地址,相对地址或者绝对地址。

mode对象为对file对象进行的操作

'''对这个方法进行一些解释

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

file就是要操作的文件的地址,这个文件如果不存在,会创建;如果存在会打开;

mode参数:

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

encoding参数用于控制对文件的解码或者编码

'''

接下来,对这个file对象来解释一下概念和方法,首先是读取的方法:

read()方法

会将所有内容一次性打印出来

read(size)方法,可以限定读取内容的大小,size是字符的数量吧,大约是这样

举个例子,假如当前路径下面有个workfile.txt,文件,里面的内容是这样的:

/Hello World!

1+2=?

明天天气如何?/

f=open('workfile.txt','r',encoding='utf-8')
print(f.read())
f.close()#一定要记得将文件流关闭
Hello World!

1+2=?

明天天气如何?

如果read没有传入任何参数,那么会将文件中所有的内容都会被打印出来。

比较适合文件很小的情况。那么如果文件很大,怎么办呢?

read(size)方法适合这种情况:

f=open('workfile.txt','r',encoding='utf-8')
print(f.read(10))
f.close()#一定要记得将文件流关闭
Hello Worl

你看,打印出了10个字符~~

readline()方法

该方法会读取file中的一行,如果没有读取到最后,还可以继续使用readline方法获取下一行。

f=open('workfile.txt','r',encoding='utf-8')
print(f.readline())#打印出第一行
print(f.readline())#打印出第二行,由于我们第二行是空行,所以没有内容显示出来。
print(f.readline())#好了,第三行出来了。
#f.close()
Hello World!

可以看出,如果使用readline()方法,将不断的打印。

readlines()方法

从文件流中读取并且返回一个行的list。

此时,我们也学习一个比较方便的打开文件的方法,不用再惦记f.close()啦。

那就是with as语句,举个栗子~

with open('workfile.txt','r',encoding='utf-8') as file:
for line in file.readlines():
print(line.strip())
Hello World!

1+2=?

明天天气如何?

Write()方法

f.write(string)将字符串格式的内容写到文件中,返回写入的字符数。

如果是其他格式的内容,使用str()方法转换之后再传入。

还有writelines()方法。

>>> f.write('This is a test\n')
>>>15
f=open('workfile.txt','a',encoding='utf-8')
f.write('\n')
f.write('这是写入的第一行~\n')
f.close()
Hello World!

1+2=?

明天天气如何?
这是写入的第一行~

f.tell()方法

f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

f.seek()方法

如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。

from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:

seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符

seek(x,1) : 表示从当前位置往后移动x个字符

seek(-x,2):表示从文件的结尾往前移动x个字符

from_what 值为默认为0,即文件开头。

JSON文件的读写

JSON是一种轻量级的数据交换格式。

Python中包含了json模块来对JSON进行编解码。

主要应用的两个函数为:

json.dumps(): 对数据进行编码。

json.loads(): 对数据进行解码。

在json的编解码过程中,python的原始类型会与json类型进行相互转换。

如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。

Python和JSON类型转换对应:

JSON----------Python

object--------dict

array---------list

string---------str

number(int)----int

number(real)---float

true-----------True

false----------False

null-----------None

下面我们展示几个栗子:

import json
data={
'admin':'admin',
'url':'http://www.baidu.com',
'password':'somepassword'
} json_str=json.dumps(data)
print('Python原始数据',repr(data))
print('JSON格式',json_str)
Python原始数据 {'admin': 'admin', 'url': 'http://www.baidu.com', 'password': 'somepassword'}
JSON格式 {"admin": "admin", "url": "http://www.baidu.com", "password": "somepassword"}

输出结果很相似。

如果要想这个data写入文件的话,是这样的代码:

import json
data={
'admin':'admin',
'url':'http://www.baidu.com',
'password':'somepassword'
}
with open('data.json','w') as f:
json.dump(data,f)
#当前路径下会出现data.json文件,里面的内容和上面的类似。

我们在展示一下如何从文件中读取json:

import json

with open('data.json','r') as f:
data=json.load(f) print(data)
print("data['url']:",data['url'])#可以看出,读取的json文件可以看成一个字典操作。
#输出结果如下:
{'url': 'http://www.baidu.com', 'admin': 'admin', 'password': 'somepassword'}
data['url']: http://www.baidu.com

爬虫入门【7】Python-文件的读写和JSON的更多相关文章

  1. python入门基础:文件的读写

    文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...

  2. python文件的读写的模式

    <1>打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w' ...

  3. [ Python入门教程 ] Python文件基本操作

    本文将python文件操作实例进行整理,以便后续取用. 文件打开和创建 Python中使用open()函数打开或创建文件.open()的声明如下: open(name[, mode[, bufferi ...

  4. Python文件的读写操作

    Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1:  注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...

  5. python文件的读写总结

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  6. python文件的读写权限以及相关应用read、write和文件指针

    f=open('ceshi.txt','a',encoding='utf-8')r=open('ceshi.txt','r',encoding='utf-8')上面的2种写法可以用with来写:wit ...

  7. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  8. Python文件的读写

    一.写数据 f = open("hello.txt", "w") f.write("hello world python!") f.clos ...

  9. 【8】python文件的读写方法

    (1).读文件的步骤: (1)打开文件 open(path,flag,encoding,[errors]) path:打开路径 flag:打开方式 r(只读) rb(二进制格式) r+(可以读写) w ...

  10. [ Python ] 文件的读写操作

    1. 文件读写操作 读写文件是最常见的 IO 操作, Python 内置了读写文件的函数.在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然 ...

随机推荐

  1. Java算法题:求素数

    题目:判断101-200之间有多少个素数,并输出所有素数. 思路:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. 具体代码: public Ve ...

  2. CSS从大图片上截取小图标

    一张图片,用CSS分割成多个小图标. css样式: .icon{ background:url(../images/tabicons.png) no-repeat;width:18px; line-h ...

  3. oracle数据库中函数和存储过程中的区别

    一.函数必须有返回值,过程没有返回值: 二.函数可以单独执行,过程必须通过execute执行: 三.函数可以嵌入SQL中执行,过程不能. 可以将比较复杂的查询写成函数,然后在过程中调用.

  4. python实现将文件夹内所有txt文件合并成一个文件

    新建一个文件夹命名为yuliao,把所有txt文件放进去就ok啦!注意路径中‘/’,windows下路径不是这样. #coding=utf-8  import os #获取目标文件夹的路径 filed ...

  5. Ubuntu 查看网关地址方法

    Ubuntu 查看网关地址方法 2017年01月10日 09:03:02 阅读数:3527 1. ip route show 2.route -n or netstat -rn 3.tracerout ...

  6. 转:svn 更新指定文件夹

    通常由于创建很多个branch和tag,当我们要去checkout指定tag和branch的时候,会不得不把整个branch/tag目录checkout出来.是不是有点傻??!!! 那么如何有选择ch ...

  7. 使用LBS(地理位置)

    一.使用之前的简单封装的OkHttpUtil http://www.cnblogs.com/itfenqing/p/6758909.html 二.关键代码: public class MainActi ...

  8. 【Excle】在重复数据中对日期排序并查询最新的一条记录

    现在存在以下数据: 需要查询出以下数据 姓名       日期 张三       2017-12-14 李四       2017-12-16 在E1中写入以下公式:=IF(D2=MAX(IF($C$ ...

  9. struct和class的不同以及struct的应用场景

    struct在C#中被用来定义结构,它是一种比类小的数据类型.和类一样都是创建对象的模板,可以有自己的数据以及处理和访问数据的方法. struct的用法: struct FurnitureSize { ...

  10. .NET CORE 2.0小白笔记(二):VS插件 ReSharper Ultimate 2017 安装破解

    采用Use License Server方式激活,如果有多台要激活的可以用一个当服务器 下载网盘:链接: https://pan.baidu.com/s/1nvacvKP 密码: ipxc 版本:Je ...