美文网首页
python笔记:打开/访问文件

python笔记:打开/访问文件

作者: 生信start_site | 来源:发表于2021-01-15 11:43 被阅读0次

    在了解了FunctionsClass以后,就可以使用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:
    

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

    相关文章

      网友评论

          本文标题:python笔记:打开/访问文件

          本文链接:https://www.haomeiwen.com/subject/cufvaktx.html