青少年python系列 45.文件操作1

青少年python系列目录_老程序员115的博客-CSDN博客

青少年python教学视频ppt源码

 在计算机信息时代,我们知道文本文件可存储的数据量多得难以置信,例如气象站的天气数据、交管部门的交通数据、金融商业街的社会经济数据、电子图书馆或博物馆的文学作品等等。每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其如此。

        例如,我们可以编写一个这样的程序:读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。要使用文本文件中的信息,首先需要将信息读取到内存中。为此,我们可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。

        在此次课程中,我们将学习如何处理文件,可以让程序能够快速地分析大量的数据。

1 全文读取文件

        要读取文件数据,需要有一个包含几行数据信息的文本文件。下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,并且在小数点后每10位处都换行。

        我们将文件的名称与格式保存为pi.txt,然后将该文件保存到与我们此时运行的Python文件的同一个目录中。

        我们先来看看函数open()。要以任何方式使用文件——哪怕仅仅是打印其内容,都得先打开文件,这样才能访问它。

        函数open()接受一个参数:要打开的文件的名称。Python在当前执行的文件所在的目录中查找指定的文件。

        在这个示例中,当前运行的是全文读取文件.py,因此Python在全文读取文件.py所在的目录中查找pi.txt文件。函数open()返回一个表示文件的对象。这里,open('pi.txt')会返回一个表示文件pi.txt的对象。Python将这个对象存储在我们将在后面使用的变量中。

        关键字with在不再需要访问文件后会将其关闭。在这个程序中,注意到我们调用了open(),但没有调用close()。当然,你也可以调用open()和close()来打开和关闭文件,但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),你会发现需要使用文件时它已关闭(无法访问),这可能会导致更多的错误。

        并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可让Python去确定:你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。有了表示pi.txt的文件对象后,我们在程序的第三行使用read()函数方法读取这个文件的全部内容,并将读取到的信息作为一个长长的字符串存储在变量contents中。这样,通过打印contents的值,就可将这个文本文件的全部内容显示出来。

2 文件读取路径

        当将类似pi.txt这样的简单文件名传递给函open()时,Python将在当前执行的文件(即.py程序文件)所在的目录中查找文件。但是有时可能要打开不在运行程序文件所属目录中的文件。例如,可能将程序文件存储在了计算机桌面的一个文件夹中,要让Python打开不与程序文件位于同一个目录中的文件,我们需要提供要打开的文件路径,它让Python到系统特定位置去查找。

1、相对路径文件查找

        通常,程序运行文件是与数据文件分开存放的,假如我们在程序需运行文件目录下新建一个data文件夹,然后我们将pi.txt放入其中,这时我们该如何通过程序来访问打开pi.txt文件呢?我们先在.py文件目录下创建data文件夹,然后把pi.txt放入其中。

        这行代码让Python在当前运行的.py程序文件目录下的data文件夹中,寻找.txt文件。请注意,在文件路径中使用反斜杠(\)而不是斜杠(/)。

相对路径查找操作执行的文件,其实就是相对于当前运行.py程序文件的磁盘路径位置。

2、绝对路径文件查找

        我们还可以将文件在计算机中的准确位置告诉Python,这样就不用关心当前运行的.py程序文件存储在什么地方了。这称为绝对文件路径。在相对路径行不通时,可试着使用绝对路径。

        运行程序后,我们看到此种方法,可以完成对绝对路径下的文件进行访问、操作,而且路径中也可以包含中文字符,要知道很多情况下是不支持使用中文地址的。

        相对、绝对路径寻址的方式就像真实世界的地址,比如通过绝对路径寻址就像告诉系统:我是来自哪个省份、地级市、县(区)的一样,而相对路径寻址就像你已经有了地址作为参照,即以.py运行程序文件的地址作为参照地址,来告诉系统:我是同某某已知的.py运行程序文件是一个县的。

3 逐行读取文件

        读取文件时,常常需要检查其中的每一行:你可能要在文件中查找特定的信息,或者要以某种方式来修改文件中的文本内容。

        我们将要读取的文件的名称存储在变量file_path中,这是使用文件地址时一种常见的做法。由于变量file_path表示的并非实际文件,它只是一个让Python知道到哪里去查找文件的路径字符串,因此可轻松地将'pi.txt'替换为你要使用的另一个文件的名称。

        调用open()后,将一个表示文件及其内容的对象存储到了变量file_object中。这里也使用了关键字with,让Python负责妥善地打开和关闭文件。为查看文件的内容,我们通过对文件对象执行for循环来查看文件中的每一行。

我们也可以对中文文本信息进行读取:

        在进行中文文本信息读取的过程中,需要读取的目标文本文档的编码方式必须是UTF-8的格式,并在open()函数方法中指定编码方式encoding='utf8'。进行英文文本信息读取的过程中,需要读取的目标文本文档的编码方式必须是ANSI的格式,可不必指定编码方式。那什么是编码方式呢?下面我们来简单了解一下txt文本的四种编码方式:

        ANSI:系统预设的标准文字储存格式。ANSI是American National Standards Institute的缩写。它成立于1918年,是一个自愿性的组织,拥有超过1300个会员,包括所有大型的电脑公司。ANSI专为电脑工业建立标准,它是世界上相当重要的标准。

        Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集。当采用Unicode格式储存文件时,可使用Unicode控制字符辅助说明语言的文字覆盖范围,如阿拉伯语、希伯来语。用户在记事本中输入含有Unicode字符的文字并储存文件时,系统会提示你必须选取“另存为”中的Unicode编码,这些字符才不会被遗失。部分Windows 2000字型无法显示所有的Unicode字符。如果发现文件中缺少了某些字符,只需将其变更为其它字型即可。

        Unicode big endian:在Big-endian处理器(如苹果Macintosh电脑)上建立的Unicode文件中的文字位元组(存放单位)排列顺序,与在Intel处理器上建立的文件的文字位元组排列顺序相反。最重要的位元组拥有最低的地址,且会先储存文字中较大的一端。为使这类电脑的用户能够存取你的文件,可选择Unicode big-endian格式。

UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation Format),UTF-8是Unicode的8位元格式。如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可以选择UTF-8格式。

总结

1、全文读取文件

with open('pi.txt') as file_object:

    contents = file_object.read()

    print(contents)

2、文件读取路径

相对路径读取与绝对路径读取

3、逐行读取文件

file_path = 'C:\全文读取文件\data\pi.txt'                   

with open(file_path) as file_object:

 for every_line in file_object:

        print(every_line)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2020年9月,青少年 Python 二级课程将为学生提供深入学习和实践 Python 编程的机会。这个课程旨在进一步提升学生的编程技能,开发他们的逻辑思维和解决问题的能力。 课程将包括以下内容: 一、Python 基础知识:课程将讲解 Python 语言的基本语法和常用数据类型,如字符串、列表、字典、元组和集合。学生将学会使用这些数据类型来解决实际问题,并学会编写简单的函数和控制流程语句。 二、Python 高级概念:课程将进一步深入探讨 Python 的高级概念,如面向对象编程、模块和包、异常处理和文件操作。学生将学会如何编写复杂的程序,并且有机会在实际项目中应用所学的知识。 三、数据处理和数据可视化:学生将学习使用 Python 处理和分析数据。课程将介绍 pandas 库,帮助学生学会如何操作和处理数据集。同时,课程还将教授使用 Matplotlib 和 Seaborn 库来创建图表和可视化展示数据。 四、项目实践:课程的重点将是实践项目。学生将有机会应用他们所学的知识来完成各种不同的项目,例如创建简单的游戏、Web 应用程序或数据分析项目。这些项目将帮助学生将所学的概念转化为实际应用,并提升他们的编程技能。 总之,2020年9月青少年 Python 二级课程将为学生提供一个丰富的学习经验,帮助他们深入掌握 Python 编程,并培养他们的解决问题的能力和创造力。这将为他们今后在计算机科学领域的学习和职业发展奠定坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值