【读取整个文件】

记录之前看不明白的读取文件的方法。详见代码注释。

1、在当前执行的文件所在的目录中查找文件

with open('pi_digits.txt') as file_object:
    contents=file_object.read()
    print(contents.rstrip())

# 第一行:
# 函数open()接受一个参数:要打开的文件的名称。python会在当前执行的文件的所在目录中去查找指定的文件。open()返回一个表示文件的对象。
# 在这里,open('pi_digits.txt')返回一个表示文件pi_digits.txt的对象;python将这个对象存储在后面即将使用的变量中。
# 关键字with:在不再需要访问文件之后将其关闭。用close()也可以将文件手动关闭,但是确定关闭文件的恰当时机不是很容易确定。
# 第二行:
# 使用方法read()读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量contents中。
# read()到达文件末尾时返回一个空字符串,将这个空字符串显示出来就是一个空行。
# 这样通过打印contents的值就可以将这个文本文件的全部内容显示出来。
# 第三行:
# 在print语句中使用rstrip():删除末尾的空行。(python方法rstrip()删除字符串末尾的空白)

2、通过文件路径查找文件

(1)相对路径

# 相对路径
with open('../text_files/filename.txt') as file_object:
    contents=file_object.read()
    print(contents)

(2)绝对路径(注意Windows的路径一般全部要用反斜杠“\”,Linux和OS X中类似于下面第二个代码段)

#绝对路径(Windows)
file_path='D:\PycharmProjects\python_work\text_files\filename.txt'
with open(file_path) as file_object:
    contents=file_object.read()
    print(contents)
#绝对路径(Linux、OS X)
file_path='/PycharmProjects/python_work/text_files/filename.txt'
with open(file_path) as file_object:
    contents=file_object.read()
    print(contents)

【注意】Windows系统有时候可以正确解读文件路径中的斜杆。但是我在使用绝对路径读取文件时出现了下图所示的错误:

【解决方法】首先,确定了文件路径中使用的都是反斜杠“\”。后面考虑到反斜杠在python中被视为转义标记,为了在Windows中确保万无一失,应该以原始字符串的方式指定路径,即在开头的单引号前加上r,如下图所示,解决了问题。

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

# 使用关键字with时,open()返回的文件对象只在with代码块内可用。
# 要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表。
filename='pi_digits.txt'
with open(filename) as file_object:
    lines=file_object.readlines()

for line in lines:
    print(line.rstrip())

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值