python打开文件as_python笔记:打开/访问文件

在了解了Functions和Class以后,就可以使用python进行更多的工作了。我们使用python最常用的就是进行文件的处理。那么python是如何访问文件的,又是如何打开文件,这篇简短的笔记将记录这些内容。

(一)读取文件

首先准备一个简单的小文件,把它取名为“pi_digits.txt”:

3.1415926535

8979323846

2643383279

保存后关闭。在python里,使用下面的代码来打开上面这个小文件:

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

contents = file_object.read()

print(contents)

现在来仔细的说明上面的每一步都是什么意思:

在使用任何一个文件前,即使你仅仅打印其中的内容,第一步你需要做的就是打开这个文件(访问它)。open()function只需要一个参数,就是你要打开的文件名。这时python会在当前的文件夹里搜索这个文件名。open()函数返回一个对象,这个对象代表这个文件。在这个例子中,open('pi_digits.txt')返回一个对象,代表着pi_digits.txt。python把这个对象分配给file_object。

关键词with在访问这个文件后关闭它。需要注意的是我们调用open(),但是没有调用close()。你也可以使用open()和close()来打开和关闭文件,但是如果你的程序里有个bug存在,阻止了close()的执行,那么你的这个文件将永远不会被关闭。这看起来好像不是很重要,但是不恰当的关闭文件会导致data的丢失或者损坏。而且,如果你调用close()太早的话,会导致错误出现。使用with的好处就是,当你的程序执行完成后python会自动的帮你关闭文件。

read()方法可以用来阅读整个文件的内容,并且把它作为一个长字符串储存在contents里面。

上面的代码运行后,结果是:

3.1415926535

8979323846

2643383279

这个输出和原文件唯一不同的区别就是:输出的内容后面多出一个空行。因为read()在到达文件底端的时候会返回一个空字符,这个空字符会作为一个空白行出现。如果你想删掉这个空白行,可以使用rstrip():

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

contents = file_object.read()

print(contents.rstrip())

(二)文件路径

有些时候你想打开的文件所在的文件夹,和你的程序所在的文件夹不是同一个。比如你的程序在一个名为“python_work”的文件夹,在这里面,你还有一个文件夹叫做“text_files”。即使text_files在python_work里,你如果还是用上面的open()函数,括号里只写text_files是无效的。因为python只会在python_work文件夹里寻找。这时就需要你提供文件的路径了。

因为text_files在python_work里,你可以使用相对路径打开text_files:

with open('text_files/filename.txt') as file_object:

你也可以使用绝对路径来告诉python你的文件在哪里。当你使用相对路径时不管用的时候,可以试试绝对路径:

file_path = '/home/ehmatthes/other_files/text_files/filename.txt'

with open(file_path) as file_object:

绝对路径一般都比较长,所以你可以把它先分配给一个变量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值