python入门——文件和异常__从文件中读取数据

目录

一、读取整个文件

二、文件路径

     相对文件路径

     绝对文件路径

三、逐行读取文件内容

四、创建一个包含文件各行内容的列表

            ——更广泛使用已读取文档内的数据

 五、使用文件的内容


一、读取整个文件

要读取某个文件,首先的创建一个包含几行文本的文件。步骤如下:

1.先在你当前执行的文件所在目录创建一个文本文件,文本文件里的内容随意。

例如:

 当前执行文件为work_1day,新建文本文件pi_digits。文本文档内容自定义,随便写点什么。

 2.在当前执行文件中输入以下代码:

with open("pi_digits.txt") as file_object:
    numbers = file_object.read()
print(numbers)

'''文件必须先打开才能访问,文件打开后需要及时关闭,否则会导致文件中的数据丢失或受损。文件的关闭时机,人为不好把握:文件关闭太早,后续使用该文件将无法访问。

with关键词可以让python妥善地打开和关闭文件。

open()是能够打开文件的函数,使用时只需向其传递一个参数(需要打开的文件的文件名)即可。

''' 

3.在pycharm中点击运行。运行结果(这里我文档文件中写的是圆周率前2位):

 '''

read()是读取文件内容的函数,文件读取完毕后会自动返回一个空字符串。故运行结果多了一空行。

rstrip()方法可删除多余的空行。

'''


二、文件路径

文件路径有两种,一为相对文件路径,二为绝对文件路径。前者做法比较简单。

1.相对文件路径:如一程序文件存储在(pyton_work)文件夹中,有一文本文件夹(text_files)和该程序文件同处于(python_work)同一文件夹中。文本文件夹(text_files)用于存储程序文件操作的文本文件。如:

 

 使用相对路径打开文件,可以输入如下代码(图中'text_files/file_loca.txt'为相对路径。):

with open('text_files/file_loca.txt') as files_object:
    OO = files_object.read()
print(OO)

 运行可打开文件内容。

2.绝对文件路径:存储程序操作文本文件的文件夹(text_files)不在(python_work)文件夹中,及与当前的程序文件存在于同一文件夹(python_work)目录下:

文件夹text_files不在文件夹pyton_work ,而在其他位置:

 这种情况下想要打开text_files文件夹中的文本文档,就要用绝对文件路径。可以这样写代码:

​
file_path = '/python/text_files/file_loca.txt'
with open(file_path) as file_object:
    weath = file_object.read()
print(weath)

​

同样的,运行可查看文档文件内容。这里的绝对路径不用把处于某盘写上——这里的绝对路径写成"/F:/python/text_files/file_loca.txt"是会被python视为无效参数的。

三、逐行读取

有时候需要读取文件中特定的信息,可以对文件对象进行for循环遍历:

file_name = 'pi_digits.txt'

with open(file_name) as file_object:
    for line in file_object:
        print(line.rstrip())

 运行结果(输出内容于你编写的一致):

四、创建一个包含文件各行内容的列表

readlines()方法会一次性读取所有行,并返回一个列表,每个元素为一行文本。这样便于在with模块外,也能使用这些变量(lines)。下面是一个使用readlines()的示例:

file_name = 'pi_digits.txt'

with open(file_name, 'r') as f:
    lines = f.readlines()
for line in lines:
    print(line.strip())

 运行结果:

 

在逐行读取文件时,最好使用with语句来打开文件,以确保文件在使用完后能够被正确关闭,而不会出现文件被占用的情况。   

             

 五、使用文件的内容

文件的数据通过列表存入运行内存中之后,就可以用任何方式使用这些数据了。

例如:

file_path = '/Python/text_files/file_loca.txt'

with open(file_path, 'r') as f:
    lines = f.readlines()
O_string = ''
for line in lines:
    O_string += line.strip()
print(O_string)
print(len(O_string))

strip()方法会同时删除开头和结尾的空格,而rstrip()方法仅删除结尾的空格。

需要注意的是,这两个方法返回的均是删除了指定字符之后的新字符串,原始字符串并没有被修改。如果需要改变原始字符串,可以将这些方法应用于字符串的副本并重新赋值。

简单使用files_loca.txt存储的圆周率数据。运行结果: 

 

值得注意的是,读取文本文件时,python将其所有文本内容解读为字符串。如果有数值使用的需求,别忘记强制类型转换,换成你所需要的数据类型哦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值