7个优秀网站设计赏析wordpress rss修改
news/
2025/9/28 4:36:56/
文章来源:
7个优秀网站设计赏析,wordpress rss修改,工业设计专业大学排名,青岛公司网站建设公司目录 编辑
第#xff11;0 章
文件和异常
10.1 从文件中读取数据
10.1.1 读取整个文件
pi_digits.txt
file_reader.py
10.1.2 文件路径
10.1.3 逐行读取
file_reader.py
10.1.4 创建一个包含文件各行内容的列表
10.1.5 使用文件的内容
pi_string.py
往期快速传…目录 编辑
第0 章
文件和异常
10.1 从文件中读取数据
10.1.1 读取整个文件
pi_digits.txt
file_reader.py
10.1.2 文件路径
10.1.3 逐行读取
file_reader.py
10.1.4 创建一个包含文件各行内容的列表
10.1.5 使用文件的内容
pi_string.py
往期快速传送门在文章最后
感谢大家的支持欢迎订阅收藏专栏将持续更新 第0 章
文件和异常
10.1 从文件中读取数据 文本文件可存储的数据量多得难以置信天气数据、交通数据、社会经济数据、文学作品等。 每当需要分析或修改存储在文件中的信息时读取文件都很有用对数据分析应用程序来说尤其 如此。例如你可以编写一个这样的程序读取一个文本文件的内容重新设置这些数据的格式 并将其写入文件让浏览器能够显示这些内容。 要使用文本文件中的信息首先需要将信息读取到内存中。为此你可以一次性读取文件的 全部内容也可以以每次一行的方式逐步读取。 10.1.1 读取整个文件 要读取文件需要一个包含几行文本的文件。下面首先来创建一个文件它包含精确到小数 点后30位的圆周率值且在小数点后每10位处都换行 pi_digits.txt 3.141592653589793238462643383279 要动手尝试后续示例可在编辑器中输入这些数据行再将文件保存为pi_digits.txt也可从 本书的配套网站https://www.nostarch.com/pythoncrashcourse/下载该文件。然后将该文件保 存到本章程序所在的目录中。 下面的程序打开并读取这个文件再将其内容显示到屏幕上 file_reader.py with open(pi_digits.txt) as file_object:contents file_object.read()print(contents) 在这个程序中第1行代码做了大量的工作。我们先来看看函数open()。要以任何方式使用 文件——哪怕仅仅是打印其内容都得先打开文件这样才能访问它。函数open()接受一个参数 要打开的文件的名称。Python在当前执行的文件所在的目录中查找指定的文件。在这个示例中 当前运行的是file_reader.py因此Python在file_reader.py所在的目录中查找pi_digits.txt。函数open() 返回一个表示文件的对象。在这里open(pi_digits.txt)返回一个表示文件pi_digits.txt的对 象Python将这个对象存储在我们将在后面使用的变量中。 关键字with在不再需要访问文件后将其关闭。在这个程序中注意到我们调用了open()但 没有调用close()你也可以调用open()和close()来打开和关闭文件但这样做时如果程序存 在bug导致close()语句未执行文件将不会关闭。这看似微不足道但未妥善地关闭文件可能 会导致数据丢失或受损。如果在程序中过早地调用close()你会发现需要使用文件时它已关闭 无法访问这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机但通 过使用前面所示的结构可让Python去确定你只管打开文件并在需要时使用它Python自会 在合适的时候自动将其关闭。 有了表示pi_digits.txt的文件对象后我们使用方法read()前述程序的第2行读取这个文 件的全部内容并将其作为一个长长的字符串存储在变量contents中。这样通过打印contents 的值就可将这个文本文件的全部内容显示出来 3.141592653589793238462643383279 相比于原始文件该输出唯一不同的地方是末尾多了一个空行。为何会多出这个空行呢因 为read()到达文件末尾时返回一个空字符串而将这个空字符串显示出来时就是一个空行。要删 除多出来的空行可在print语句中使用rstrip() with open(pi_digits.txt) as file_object:contents file_object.read()print(contents.rstrip()) 本书前面说过Python方法rstrip()删除剥除字符串末尾的空白。现在输出与原始文 件的内容完全相同 3.141592653589793238462643383279
10.1.2 文件路径 当你将类似pi_digits.txt这样的简单文件名传递给函数open()时Python将在当前执行的文件 即.py程序文件所在的目录中查找文件。 根据你组织文件的方式有时可能要打开不在程序文件所属目录中的文件。例如你可能将 程序文件存储在了文件夹python_work中而在文件夹python_work中有一个名为text_files的文 件夹用于存储程序文件操作的文本文件。虽然文件夹text_files包含在文件夹python_work中但 仅向open()传递位于该文件夹中的文件的名称也不可行因为Python只在文件夹python_work中查 找而不会在其子文件夹text_files中查找。要让Python打开不与程序文件位于同一个目录中的文 件需要提供文件路径它让Python到系统的特定位置去查找。 由于文件夹text_files位于文件夹python_work中因此可使用相对文件路径来打开该文件夹中 的文件。相对文件路径让Python到指定的位置去查找而该位置是相对于当前运行的程序所在目 录的。在Linux和OS X中你可以这样编写代码 with open(text_files/filename.txt) as file_object: 这行代码让Python到文件夹python_work下的文件夹text_files中去查找指定的.txt文件。在 Windows系统中在文件路径中使用反斜杠\而不是斜杠/ with open(text_files\filename.txt) as file_object: 你还可以将文件在计算机中的准确位置告诉Python这样就不用关心当前运行的程序存储在 什么地方了。这称为绝对文件路径。在相对路径行不通时可使用绝对路径。例如如果text_files 并不在文件夹python_work中而在文件夹other_files中则向open()传递路径text_files/ filename.txt行不通因为Python只在文件夹python_work中查找该位置。为明确地指出你希望 Python到哪里去查找你需要提供完整的路径。 绝对路径通常比相对路径更长因此将其存储在一个变量中再将该变量传递给open()会有 所帮助。在Linux和OS X中绝对路径类似于下面这样 file_path /home/ehmatthes/other_files/text_files/filename.txt
with open(file_path) as file_object: 而在Windows系统中它们类似于下面这样 file_path C:\Users\ehmatthes\other_files\text_files\filename.txt
with open(file_path) as file_object: 通过使用绝对路径可读取系统任何地方的文件。就目前而言最简单的做法是要么将数 据文件存储在程序文件所在的目录要么将其存储在程序文件所在目录下的一个文件夹如 text_files中。 注意 Windows系统有时能够正确地解读文件路径中的斜杠。如果你使用的是Windows系统且 结果不符合预期请确保在文件路径中使用的是反斜杠。 10.1.3 逐行读取 读取文件时常常需要检查其中的每一行你可能要在文件中查找特定的信息或者要以 某种方式修改文件中的文本。例如你可能要遍历一个包含天气数据的文件并使用天气描述 中包含字样sunny的行。在新闻报道中你可能会查找包含标签的行并按特定的格 式设置它。 要以每次一行的方式检查文件可对文件对象使用for循环 file_reader.py 1 filename pi_digits.txt
2 with open(filename) as file_object:
3 for line in file_object:print(line) 在1处我们将要读取的文件的名称存储在变量filename中这是使用文件时一种常见的做 法。由于变量filename表示的并非实际文件——它只是一个让Python知道到哪里去查找文件的字 符串因此可轻松地将pi_digits.txt替换为你要使用的另一个文件的名称。调用open()后将 一个表示文件及其内容的对象存储到了变量file_object中见2。这里也使用了关键字with 让Python负责妥善地打开和关闭文件。为查看文件的内容我们通过对文件对象执行循环来遍历 文件中的每一行见3。 我们打印每一行时发现空白行更多了 3.14159265358979323846 2643383279 为何会出现这些空白行呢因为在这个文件中每行的末尾都有一个看不见的换行符而 print语句也会加上一个换行符因此每行末尾都有两个换行符一个来自文件另一个来自print 语句。要消除这些多余的空白行可在print语句中使用rstrip() filename pi_digits.txt
with open(filename) as file_object:for line in file_object:print(line.rstrip()) 现在输出又与文件内容完全相同了 3.141592653589793238462643383279
10.1.4 创建一个包含文件各行内容的列表 使用关键字with时open()返回的文件对象只在with代码块内可用。如果要在with代码块外 访问文件的内容可在with代码块内将文件的各行存储在一个列表中并在with代码块外使用该 列表你可以立即处理文件的各个部分也可推迟到程序后面再处理。 下面的示例在with代码块中将文件pi_digits.txt的各行存储在一个列表中再在with代码块外 打印它们 filename pi_digits.txt
with open(filename) as file_object:
1 lines file_object.readlines()
2 for line in lines:print(line.rstrip()) 1处的方法readlines()从文件中读取每一行并将其存储在一个列表中接下来该列表被 存储到变量lines中在with代码块外我们依然可以使用这个变量。在处我们使用一个简单 的for循环来打印lines中的各行。由于列表lines的每个元素都对应于文件中的一行因此输出 与文件内容完全一致。 10.1.5 使用文件的内容 将文件读取到内存中后就可以以任何方式使用这些数据了。下面以简单的方式使用圆周率 的值。首先我们将创建一个字符串它包含文件中存储的所有数字且没有任何空格 pi_string.py filename pi_digits.txt
with open(filename) as file_object:lines file_object.readlines()
1 pi_string
2 for line in lines:pi_string line.rstrip()
3 print(pi_string)
print(len(pi_string)) 就像前一个示例一样我们首先打开文件并将其中的所有行都存储在一个列表中。在1处 我们创建了一个变量——pi_string用于存储圆周率的值。接下来我们使用一个循环将各行 都加入pi_string并删除每行末尾的换行符见2。在3处我们打印这个字符串及其长度 3.1415926535 8979323846 2643383279
36 在变量pi_string存储的字符串中包含原来位于每行左边的空格为删除这些空格可使 用strip()而不是rstrip() filename pi_30_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)
print(len(pi_string)) 这样我们就获得了一个这样的字符串它包含精确到30位小数的圆周率值。这个字符串长 32字符因为它还包含整数部分的3和小数点 3.141592653589793238462643383279
32 注意 读取文本文件时Python将其中的所有文本都解读为字符串。如果你读取的是数字并 要将其作为数值使用就必须使用函数int()将其转换为整数或使用函数float()将其转 换为浮点数 关于“Python”的核心知识点整理大全12-CSDN博客
往期快速传送门在文章最后
感谢大家的支持欢迎订阅收藏专栏将持续更新
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920252.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!