关于“Python”的核心知识点整理大全24-1

简介: 关于“Python”的核心知识点整理大全24

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

前面我们分析的都是一个只有三行的文本文件,但这些代码示例也可处理大得多的文件。 如果我们有一个文本文件,其中包含精确到小数点后1 000 000位而不是30位的圆周率值,也可 创建一个包含所有这些数字的字符串。为此,我们无需对前面的程序做任何修改,只需将这个 文件传递给它即可。在这里,我们只打印到小数点后50位,以免终端为显示全部1 000 000位而 不断地翻滚:


pi_string.py

filename = 'pi_million_digits.txt'
with open(filename) as file_object:
 lines = file_object.readlines()
pi_string = ''
for line in lines:
 pi_string += line.strip()
print(pi_string[:52] + "...")
print(len(pi_string))

输出表明,我们创建的字符串确实包含精确到小数点后1 000 000位的圆周率值:


3.14159265358979323846264338327950288419716939937510...
1000002

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


注意 要运行这个程序(以及后面的众多示例),你需要从https://www.nostarch.com/pythoncrashcourse/下载相关的资源。


10.1.7 圆周率值中包含你的生日吗

我一直想知道自己的生日是否包含在圆周率值中。下面来扩展刚才编写的程序,以确定某个 人的生日是否包含在圆周率值的前1 000 000位中。为此,可将生日表示为一个由数字组成的字符 串,再检查这个字符串是否包含在pi_string中:


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()
1 birthday = input("Enter your birthday, in the form mmddyy: ")1
2 if birthday in pi_string:
 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.")

在1处,我们提示用户输入其生日,在接下来的2处,我们检查这个字符串是否包含在 pi_string中。运行一下这个程序:


Enter your birthdate, in the form mmddyy: 120372
Your birthday appears in the first million digits of pi!

我的生日确实出现在了圆周率值中!读取文件的内容后,就可以以你能想到的任何方式对其 进行分析。


10.2 写入文件

保存数据的最简单的方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程 序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分 享输出文件,还可编写程序来将这些输出读取到内存中并进行处理。


10.2.1 写入空文件

要将文本写入文件,你在调用open()时需要提供另一个实参,告诉Python你要写入打开的文 件。为明白其中的工作原理,我们来将一条简单的消息存储到文件中,而不是将其打印到屏幕上:


write_message.py

filename = 'programming.txt'
1 with open(filename, 'w') as file_object:
2 file_object.write("I love programming.")

在这个示例中,调用open()时提供了两个实参(见1)。第一个实参也是要打开的文件的名称; 第二个实参('w')告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模 式('r')、写入模式('w')、附加模式('a')或让你能够读取和写入文件的模式('r+')。如果 你省略了模式实参,Python将以默认的只读模式打开文件。 如果你要写入的文件不存在,函数open()将自动创建它。然而,以写入('w')模式打开文 件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。


在2处,我们使用文件对象的方法write()将一个字符串写入文件。这个程序没有终端输出, 但如果你打开文件programming.txt,将看到其中包含如下一行内容:


programming.txt

filename = 'programming.txt'
with open(filename, 'w') as file_object:
 file_object.write("I love programming.")
 file_object.write("I love creating new games.")
I love programming.

相比于你的计算机中的其他文件,这个文件没有什么不同。你可以打开它、在其中输入新文 本、复制其内容、将内容粘贴到其中等。


注意 Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数 str()将其转换为字符串格式。


10.2.2 写入多行

函数write()不会在你写入的文本末尾添加换行符,因此如果你写入多行时没有指定换行符, 文件看起来可能不是你希望的那样:


如果你打开programming.txt,将发现两行内容挤在一起:


I love programming.I love creating new games.

要让每个字符串都单独占一行,需要在write()语句中包含换行符:


filename = 'programming.txt'
with open(filename, 'w') as file_object:
 file_object.write("I love programming.\n")
 file_object.write("I love creating new games.\n")

现在,输出出现在不同行中:


I love programming.
I love creating new games.

像显示到终端的输出一样,还可以使用空格、制表符和空行来设置这些输出的格式。


10.2.3 附加到文件

如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式打开文件。你以附加模式 打开文件时,Python不会在返回文件对象前清空文件,而你写入到文件的行都将添加到文件末尾。 如果指定的文件不存在,Python将为你创建一个空文件。 下面来修改write_message.py,在既有文件programming.txt中再添加一些你酷爱编程的原因:


write_message.py

filename = 'programming.txt'
1 with open(filename, 'a') as file_object:
2 file_object.write("I also love finding meaning in large datasets.\n")
file_object.write("I love creating apps that can run in a browser.\n")

在1处,我们打开文件时指定了实参'a',以便将内容附加到文件末尾,而不是覆盖文件原 来的内容。在2处,我们又写入了两行,它们被添加到文件programming.txt末尾:


programming.txt

I love programming.
I love creating new games.
I also love finding meaning in large datasets.
I love creating apps that can run in a browser.

最终的结果是,文件原来的内容还在,它们后面是我们刚添加的内容。


关于“Python”的核心知识点整理大全24-2

https://developer.aliyun.com/article/1424792?spm=a2c6h.13148508.setting.20.10644f0eaP3tHw

目录
相关文章
|
2月前
|
存储 搜索推荐 数据库
关于“Python”的核心知识点整理大全58
关于“Python”的核心知识点整理大全58
44 2
|
26天前
|
存储 Python 容器
Python新手入门,这些基础知识点你掌握了吗?
【6月更文挑战第12天】Python是新手友好的编程语言,具备解释型、面向对象、动态类型和跨平台特性。基础知识包括:变量(如整数、浮点数、字符串、列表、元组、字典和集合),运算符与控制流(如条件语句和循环),以及函数的定义与调用。要精通Python,还需学习更多如面向对象编程、模块、文件操作等内容。开始你的Python学习之旅吧!
|
5天前
|
缓存 网络协议 Linux
Linux、Python、计算机网络中的常见知识点
Linux、Python、计算机网络中的常见知识点
|
5天前
|
算法 Java Linux
python中的面试常考知识点
python中的面试常考知识点
|
1月前
|
数据采集 机器学习/深度学习 数据挖掘
python运用知识点说明
Python涵盖广泛,从基础语法(变量、数据类型、字符串操作)到高级特性(装饰器、迭代器、闭包)。常用库包括NumPy, Pandas(数据处理),Scikit-learn, TensorFlow(机器学习),Django, Flask(Web开发),Scrapy(网络爬虫)。应用于Web开发、数据分析、系统运维、游戏开发和网络爬虫。Python历经1.x、2.x到3.x版本,3.x引入重大更新,强调Unicode和函数打印等,与2.x不兼容。掌握这些能提升开发效率。【6月更文挑战第4天】
32 2
|
2月前
|
Python
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
最新用Python做一个变态版的《超级玛丽》游戏,面试必备知识点
|
2月前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
59 12
|
2月前
|
存储 JSON 数据格式
Python知识点——高维数据的格式化
Python知识点——高维数据的格式化
30 0
|
2月前
|
Python
Python知识点——文件和数据格式化
Python知识点——文件和数据格式化
23 0
|
2月前
|
存储 关系型数据库 数据库
关于“Python”的核心知识点整理大全62
关于“Python”的核心知识点整理大全62
40 4
关于“Python”的核心知识点整理大全62