Python基础学习——文件

文件

文本文件可存储的数据量多得难以置信:天气数据、交通数据、社会经济数据、文学作品等。

(1)读取文本文件
A.读取整个文档

with open('pi_digits.txt') as file_object: #打开文件返回一个表示该文件的对象,as 取别名
	contents = file_object.read()#对整个内容进行读取
    print(contents)

【代码解析】:
(1)open(文件路径) 打开文件 ,仅接受一个参数,即需打开的文件所在路径,文件路径中使用的是反斜杠
(2)关键字with 在不再需要访问文件后将其关闭。程序将在不使用该文件后,将其自动关闭
#with 方法避免了在程序出错后,close()函数未执行,文件未关闭的情况,以及过早关闭文件,而使后续文件访问出错的错误
#使用with 可让Python去确定:你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。
(3)在open()文件后,我们将其进行内容读取,使用方法read()读取这个文件的全部内容,并将其存入变量中。
【注意】:read()到达文件末尾时,会自动返回一个字符串,而将这个字符串打印出来就是一个空行。
解决方法
在打印语句中使用rstrip()进行空白行删除

with open('pi_digits.txt') as file_object:
	contents = file_object.read()  #对整个内容进行读取
	print(contents.rstrip())  #删除空行(删除字符串末尾的空白)

B.逐行读取(循环)

filename = 'pi_digits.txt'
with open(filename) as file_object:
	for line in file_object: #逐行读取
		print(line.rstrip()) #删除空行(删除字符串末尾的空白)

C.创建一个包含文件内各行内容的列表【常用】
#readlines()从文件中读取每一行,并将其自动存储在一个列表中

 filename = 'pi_digits.txt'
    with open(filename) as file_object:
        lines = file_object.readlines()#逐行读取,并存储在一个列表中
    for line in lines:#循环列表,实现逐行读取
        print(line.rstrip())

small tips: 对于你可处理的数据量,Python没有任何限制;只要系统的内存足够多,你想处理多少数据都可以。
【案例】:

filename = 'pi_million_digits.txt'
    with open(filename) as file_object:
        lines = file_object.readlines()#逐行读取,存入列表
    pi_string = ''
    for line in lines:
        pi_string += line.rstrip()#文本进行拼接
    birthday = input("Enter your birthday, in the form mmddyy: ")
    if birthday in pi_string:   #判断子字符串是否包含在大字符串中,使用in
    #in 是判断是否包含的通用符
        print("Your birthday appears in the first million digits of pi!")
    else:
        print("Your birthday does not appear in the first million digits of pi.")

#in 是判断是否包含的通用符

(2)写入文件 (只能写入字符串型文本内容)
#保存数据的最简单的方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在。
1)open(保存文件路径,模式实参),若要写入的文件不存在,函数open()将自动创建文件
2)write()写入内容 不会在写入文本末尾自动添加换行符,因此若要实现换行效果,则需自主添加换行符

filename = 'programming.txt'
    with open(filename, 'w') as file_object:#打开文件,并告诉python要写入文件
        file_object.write("I love programming.")#写入文件
        file_object.write("Today is a Sunny day!\n")

【代码解析】:
1、调用open() 时提供了两个实参,第一个实参也是要打开的文件的名称;第二个实参(‘w’ )告诉Python我们要以写入模式打开这个文件
2、模式实参包括:(只读)读取模式(‘r’ )、(只写)写入模式 (‘w’ )、附加模式 (‘a’ )、既能读取和写入文件的模式(‘r+’ )
若省略了模式实参,则默认以只读模式打开
【区别】
写入模式 (‘w’ )时,将新内容写入之前,会将该文件中原有内容进行删除;附加模式 (‘a’ )而保留原有的内容,在原来内容的基础上,附加新内容,在原有内容的末尾。
【注意】Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str() 将其转换为字符串格式

在文件的打开与关闭时,若不适用with模式,使用原始的open()、close(),同样可实现文件的打开关闭、操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值