zoukankan      html  css  js  c++  java
  • Python学习笔记读写文件之文件与文件路径

    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      文件有两个关键属性:“文件名”(通常写成一个单词)和“路径”。路径指明了文件在计算机上的位置。例如,我的 Windows 7 笔记

    本上有一个文件名为projects.docx,它的路径在C:UsersasweigartDocuments。文件名中,最后一个句点之后的部分称为文件的“扩展

    名”,它指出了文件的类型。project.docx 是一个Word 文档,Users、asweigart和 Documents 都是指“文件夹”(也成为目录)。文件夹

    可以包含文件和其他文件夹。例如,project.docx 在Documents 文件夹中,该文件夹又在asweigart 文件夹中,asweigart文件夹又在Users

    文件夹中。路径中的 C:部分是“根文件夹”,它包含了所有其他文件夹。在 Windows 中,根文件夹名为 C:,也称为 C:盘。在 OS X 和

    Linux 中,根文件夹是/。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      在文件夹层次结构中的一个文件:

      1、Windows 上的倒斜杠以及 OS X 和 Linux 上的正斜杠

      在Windows上,路径书写使用到斜杠作为文件夹之间的分隔符。但在OSX和Linux上,使用正斜杠作为它们路径的分隔符。如果想要

    程序运行在所有操作系统上,在编写Python脚本时,就必须处理这两种情况。

      好在,用os.path.join()函数来做这件事很简单。如果将单个文件和路径上的文件夹名称的字符串传递给它,os.path.join()就会返回一个

    文件夹路径的字符串,包含正确的路径分隔符。

      示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #把文件名称传递给os.path.join()函数
    path_file = os.path.join('usr', 'bin', 'spam')
    #打印文件路径
    print(path_file)
    

      运行结果:

      如果需要创建文件名称的字符串,os.path.join()函数就很有用。这些字符串将传递给几个文件相关的函数,本章将进行介绍。例如,下面的

    例子将一个文件名列表中的名称,添加到文件夹名称的末尾。

      示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #定一个列表,存放文件名
    myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
    #循环文件名
    for filename in myFiles:
        #使用os.path.join()函数,把文件名作为第二个参数加上地址
        print(os.path.join('C:\Users\asweigart', filename))
    

      运行结果;

      2、当前工作目录

      每个运行在计算机上的程序,都有一个“当前工作目录”,或cwd。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。利用os.getcwd()函数

    ,可以取得当前工作路径的字符串,并可以利用os,chdir()改变它。

      利用os.getcwd()函数获取当前工作目录,示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.getcwd()函数,获取当前工作路径
    print(os.getcwd())
    

      运行结果:

      利用os.chdir()函数改变当前工作目录,示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.getcwd()函数,获取当前工作路径
    print(os.getcwd())
    #利用os.chdir(),改变当前目录
    os.chdir('D:\360Downloads\Software')
    #打印改变后的,当前目录
    print(os.getcwd())
    

      运行结果:

      3、绝对路径与相对路径

      有两种方法指定一个文件路径。

      (1)“绝对路径”,总是从根文件夹开始。

      (2)相对路径,它相对于程序的当前工作目录。

      还有点(.)和点点(..)文件夹。它们不是真正的文件夹,而是可以在路径中使用的特殊名称。单个的句点(‘点’)用作文件夹名称时,是‘这个目录’的缩写

    。两个句点(‘点点’)意思是父级文件夹。

      下图是一些文件夹和文件的例子。如果当前工作目录设置为 C:acon,这些文件夹和文件的相对目录,就设置为下图所示的样子。

      4、用os.makedirs()创建新文件夹,示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.makedirs()函数,创建新的文件夹
    os.makedirs('D:\Users\Administrator')
    

      运行结果:

      5、os.path模块

      os.path模块包含了许多与文件名和文件路径相关的有用函数。例如,你已经使用了os.path.join()来构建所有操作系统上都有效的路径。

    因为os.path是os模块中的模块,所以只要执行import os就可以导入它。如果你的程序需要处理文件、文件夹或文件路径,就可以使用os模块。

      6、处理绝对路径和相对路径

      os.path模块提供了一些函数,返回一个相对的绝对路径,以及检查给定的路径是否为绝对路径。

      (1)调用os.path.abspath(path),将返回参数的绝对路径的字符串。这就是相对路径转换为绝对路径的简单方法。

      os.path.abspath()函数,示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.path.abspath()函数,取得当前工作目录的绝对路径(.句点表示为当前路径)
    print(os.path.abspath('.'))
    #利用os.path.abspath()函数,取得当前工作目录父级的绝对路径(..两个句点表示为当前路径的父级目录)
    print(os.path.abspath('..'))
    

      运行结果;

      (2)调用os.path.isabs(path),如果参数是一个绝对路径,就返回True,如果参数是一个相对路径,就返回False。

      os.path.isabs()函数,示例代码

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入绝对路径,返回True
    print(os.path.isabs('C:\UsersAdministratorPycharmProjects	est'))
    #利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入相对路径,返回False
    print(os.path.isabs('.'))
    #利用os.path.isabs()函数,判断当前为绝对路径还是相对路径,传入相对路径,返回False
    print(os.path.isabs('..'))
    

      运行结果:

      (3)调用os.path.relpath(path,start)将返回从start路径到path的相对路径的字符串。如果没有提供 start,就使用当前工作目录作为开始路径。

      os.path.relpath() 函数,示例代码:

    #导入os模块
    import os
    print(os.path.relpath('C:\Windows', 'C:\'))
    print(os.path.relpath('C:\UsersAdministrator\PycharmProjects\test', 'C:\Users\Administrator'))
    

      运行结果:

      7、查看文件大小和文件内容

      一旦有办法处理文件路径,就可以开始搜集特定文件和文件夹的信息。os.path 模块提供了一些函数,用于查看文件的字节数以及给定文件夹中的文件

    和子文件夹。

      (1)调用 os.path.getsize(path)将返回 path 参数中文件的字节数。

      os.path.getsize()函数,示例代码:

    #利用os.path.getsize()函数,获取路径下所有文件的大小
    print(os.path.getsize('C:\Users\Administrator\PycharmProjects\test\文件读写'))
    #利用os.path.getsize()函数,获取路径下指定文件的大小
    print(os.path.getsize('C:\Users\Administrator\PycharmProjects\test\文件读写\Create_Folder.py'))
    

      运行结果:

      (2)调用os.listdir(path)将返回文件名字符串的列表,包含path参数中的每个文件(这个函数在os模块中,而不是os.path)

       os.listdir()函数,示例代码:

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.listdir()函数,获取路径下的所有文件,并返回一个列表值
    print(os.listdir('C:\Users\Administrator\PycharmProjects\test\文件读写'))
    

      运行结果;

       8、检查路径的有效性

      如果你提供的路径不存在,许多 Python 函数就会崩溃并报错。os.path 模块提供了一些函数,用于检测给定的路径是否存在,以及它是文件还是文件夹。

      (1)如果path参数存在,并且是一个文件或文件夹存在,调用os.path.exists(path)将返回True,否则返回False.

      os.path.exists()函数,示例代码:

    #导入os模块
    import os
    #利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
    print(os.path.exists('C:\Users\Administrator\PycharmProjects\test\文件读写'))
    #利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
    print(os.path.exists('C:\Users\Administrator\PycharmProjects\test\文件读写\Create_Folder.py'))
    #利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
    print(os.path.exists('C'))
    #利用os.path.exists()函数,判断是否为文件或文件夹,是返回True,否则返回False.
    print(os.path.exists('Create_Folder.py'))
    

      运行结果:

      (2)如果path参数存在,并且是一个文件,调用os.path.isfile(path)将返回True,否则返回False.

    #导入os模块
    import os
    #利用os.path.isfile()函数,判断是否为文件,是返回True,否则返回False.
    #文件夹
    print(os.path.isfile('C:\Users\Administrator\PycharmProjects\test\文件读写'))
    #文件
    print(os.path.exists('C:\Users\Administrator\PycharmProjects\test\文件读写\Create_Folder.py'))
    #字符
    print(os.path.exists('C'))
    #数字
    print(os.path.exists('1'))
    

      运行结果:

      (3)如果path参数存在,并且是一个文件夹,调用os.path.isdir(path)将返回True,否则返回False.

    #! python 3
    # -*- coding:utf-8 -*-
    # Autor: Li Rong Yang
    #导入os模块
    import os
    #利用os.path.isdir()函数,判断是否为文件,是返回True,否则返回False.
    #文件夹
    print(os.path.isdir('C:\Users\Administrator\PycharmProjects\test\文件读写'))
    #文件
    print(os.path.isdir('C:\Users\Administrator\PycharmProjects\test\文件读写\Create_Folder.py'))
    #字符
    print(os.path.isdir('C'))
    #数字
    print(os.path.isdir('1'))
    

      运行结果:

      

  • 相关阅读:
    SAP S/4HANA extensibility扩展原理介绍
    SAP CRM系统订单模型的设计与实现
    使用nodejs代码在SAP C4C里创建Individual customer
    SAP Cloud for Customer Account和individual customer的区别
    Let the Balloon Rise map一个数组
    How Many Tables 简单并查集
    Heap Operations 优先队列
    Arpa’s obvious problem and Mehrdad’s terrible solution 思维
    Passing the Message 单调栈两次
    The Suspects 并查集
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9608870.html
Copyright © 2011-2022 走看看