python读取txt文件_说说在 Python 中,如何读取文件中的数据

ce684ffdce21a56e1edea5607934a15b.png

1 一次性读取

我们想要读取《傲慢与偏见》txt 小说(为简化例子,我们的 txt 只包含一段文字):

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

运行结果:

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.

要使用文件,就必须先打开它,所以这里使用了函数 open() 。该函数 open()

接受一个参数: 即要打开的文件路径。 如果只有文件名,那么 Python 会在当前执行文件的所在目录来查找指定的文件。

关键字 with 会在程序不再需要访问文件或出现异常的情况下,关闭文件 。 我们只管打开文件使用它即可,Python 是不是很贴心哦O(∩_∩)O~

2 文件路径

函数 open(),入参如果只有文件名,那么 Python 会在当前执行的 .py 文件的所在目录中,查找文件 。

也可以提供文件路径 , 让 Python 到指定的文件目录中去查找所需要的文件。

相对路径语法形如:

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

一般来说,在 Windows 系统中, 在文件路径中使用反斜杠( ) ,Linux 与 OS 使用的是是斜杠( / ) 。实际测试,在 Windows 7+ 系统中,斜杠与反斜杠都支持。

当然,也可以使用绝对路径。 注意: 如果使用的是绝对路径,那么在 Windows 7+ 系统中,文件路径必须使用反斜杠。形如:

with open('F:/python_projects/xxx/novel.txt') as file_object:

因为绝对路径一般较长, 所以一般将其存储在变量中,然后再传入 open() 函数。

3 逐行读取

可以对文件对象使用 for 循环,逐行读取文件内容。

with open(file) as file_object: for line_content in file_object: print(line_content.rstrip())

运行结果与之前的 “一次性读取” 示例结果相同。在 txt 文件中, 每行的末尾都存在一个看不见的换行符。消除为了去除这些多余的空白行,我们使用了 rstrip() 函数。rstrip() 函数会删除 string 字符串末尾的空格。

4 在 with 外访问

使用关键字 with 时, open() 函数所返回的文件对象,只能在 with 代码块中使用 。 如果需要在 with 代码块之外,访问文件的内容, 那么可以在 with 代码块之内,将文件中的各行内容存储在列表变量中,然后就可以在 with 代码块之外,通过该列表变量,来访问文件内容啦O(∩_∩)O~

with open(file) as file_object: contents = file_object.readlines()content_str=''for content in contents: content_str+=contentprint('content_str='+content_str)print('len='+str(len(content_str)))

运行结果:

content_str=It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. len=117

注意:读取文本文件时, Python 会将文件中的所有文本都解释为字符串 。 如果我们需要将其中的文本解释为数字,那么就必须使用函数 int() 或者 float(),将其转换为整数或者浮点数。

Python 对数据量没有大小限制, 只要我们的系统内存足够多O(∩_∩)O~

对Python感兴趣的小伙伴,记得私信小编“007”领取全套Python资料哦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值