Python学习记录8:文件的使用


本篇博客为 python学习记录系列博客内容,欢迎访问 python速成博客导航

👉不会吧,都2021年了还有人不会Python?三天急速入门教程!👈


一、文件

(一)、从文件中读取数据

1、 读取整个文件

假定我们有一个文件pi_digits.txt :

3.1415926535
  8979323846
  2643383279

以下代码可以用来读取这整个文件并将其打印:

with open('pi_digits.txt') as a:
	contents = a.read()
	print(contents.strip())
  1. open():在当前执行文件目录(仅当前层)下查找指定文件,并返回表示这个文件的对象。
  2. with:使python自动在不需要访问文件后将其关闭。
  3. read():读取整个文件内容,并存入(字符串)变量;达到文件末尾时会返回一个空字符串(打印成为空行)。
  4. strip():前文有提到,这里消除末尾的空行。
2、文件路径

1. 相对文件路径: 指定位置,且该位置是相对于当前运行的程序所在目录(可进入当前目录的子层)
with open('text_files\opo.txt') 在程序目录下打开opo文档

2. 绝对文件路径: 即文件在计算机中的具体位置,路径一般较长,可以先存入变量中。

file_path = 'D:\opo.txt'
with open(file_path,encoding='utf-8') as a:#这里后半句是为了解决中文文档编码的问题
    contents = a.read()
    print(contents.strip()) 

输出:我爱喝营养快线!
3、逐行读取
file_path = 'pi_digits.txt'
with open(file_path) as a:
    for line in a:#逐行读取
        print(line.strip()) #print、文件行尾均有换行符,所以会造成隔行输出,这里用strip消除
4、创建一个包含文件各行的列表
filename = 'pi_digits.txt'

with open(filename) as a:
    lines = a.readlines()

for line in lines:
    print(line.rstrip())

readlines():从文件中读取每一行,并将其存储在一个列表中

5、使用文件的内容
filename = 'pi_digits.txt'

with open(filename) as a:
    lines = a.readlines()

pi_string = '' #创建一个变量
for line in lines:
    pi_string += line.strip() #清除空白符并把每一行都加入

print(pi_string)
print(len(pi_string))

输出:
3.141592653589793238462643383279
32
6、处理百万位的大型文件

假定 pi_million_digits.txt 存了小数点后百万位的圆周率

filename = 'pi_million_digits.txt'

with open(filename) as a:
    lines = a.readlines()

pi_string = ''
for line in lines:
    pi_string += line.strip()

print(pi_string[:52]+"...")#这里输出时只输出到下标52
print(len(pi_string))

输出:
3.14159265358979323846264338327950288419716939937510...
1000002

(二)、写入文件

1、写入空文件

w为写入操作,若文件不存在,则自动创建;若已存在,会清空文件再写入!
注意:python只能写入文本文件,要存储数值需要先使用str()将其转化为字符串格式

filename = 'programming.txt'

with open(filename,'w',encoding='utf-8') as a:
    a.write("我爱喝哇哈哈哈哈哈\n")#写入操作不会再末尾添加换行符
2、附加到文件

a为附加操作,会将数据写入到文件末尾;若指定文件不存在,会自动创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值