Python编程:从入门到实践-第十章(笔记)

10.1 :从文件中读取数据

使用文本文件中的信息,需要将信息读取到内存中。为此,可一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。


10.1.1 : 读取整个文件

  • 函数open():接受一个参数:要打开的文件的名称;

  • 关键字with在不再需要访问文件后将其关闭;

  • read():读取这个文件的全部内容,并将其作为一个长长字符串赋给变量contents;

with open('pi_digits.txt') as file_object:
    contents = file_object.read()
print(contents)

使用rstrip()删除字符串末尾的空白;

with open('pi_digits.txt') as file_object:
    contents = file_object.read()
print(contents.rstrip())


10.1.2:文件路径

相对稳健路径让Python到指定的位置去查找,而该位置相对于当前运行的程序所在目录的;

with open('text_files/pi_digits.txt') as file_object:
    contents = file_object.read()
print(contents.rstrip())

代码让python到文件夹python_work下的文件夹text_files中去查指定的.txt文件;

注意: 显示文件路径时,Windows系统使用反斜杠 ( \ )而不是斜杠( / ),但在代码中仍然可以使用斜杠。


10.1.3 :逐行读取

要以每次一行的方式检查文件,可对文件对使用for循环:


filename = 'pi_digits.txt'
with open(filename) as file_object:
    for line in file_object:
        print(line)

使用rstrip():删除多余的空白行

filename = 'pi_digits.txt'
with open(filename) as file_object:
    for line in file_object:
        print(line.rstrip())


10.1.4 :创建一个包含文件各行内容的列表

例子:在with代码块中将文件pi_digits.txt的各行存储在一个列表中,再再with代码块外打印:

filename = 'pi_digits.txt'

with open(filename) as file_object:
    # readlines:从文件中读取每一行,并将其存储在一个列表中
    lines = file_object.readlines()

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


10.1.5 :使用文件的内容

将文件读取到内存中后,就能以任何方式使用这些数据了;

filename = 'pi_digits.txt'

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

# 创建一个变量pi_string,用于指向圆周率的值
pi_string = ''

# 使用一个循环将各行加入pi_string,并删除每行末尾的换行符;
for line in lines:
    pi_string += line.rstrip()

print(pi_string)
print(len(pi_string))

使用strip 删除空格

filename = 'pi_digits.txt'

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

# 创建一个变量pi_string,用于指向圆周率的值
pi_string = ''

# 使用一个循环将各行加入pi_string,并删除每行末尾的换行符;
for line in lines:
    pi_string += line.strip()

print(pi_string)
print(len(pi_string))


10.1.6 :包含一百万位的大型文件

只打印到小数点后50位,以免终端为显示全部1 000 000位而不断滚动:

filename = 'pi_million_digits.txt'

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

# 创建一个变量pi_string,用于指向圆周率的值
pi_string = ''

# 使用一个循环将各行加入pi_string,并删除每行末尾的换行符;
for line in lines:
    pi_string += line.strip()

print(f"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值