操作系统与文件路径        

我们知道,在不同的操作系统中,如windows、macOS、Linux中文件路径的表示方法是不同的:

                                                

                                                windows:   c:\Windows\System32

                                                 Linux:        /usr/java

如果想要python程序读写文件,那么理论上代码里文件路径的写法就会受到操作系统的制约,好在,python提供了相应的方法,可以将路径写成操作系统支持的样式,这个方法就是 os.path.join()

一个简单的示例:  

import os 
os.path.join('usr','bin')

 如果是windows: 则输出 ‘usr\\bin',  这里的\\第一个\表示转义

 如果是Linux: 则输出'usr/bin'

绝对路径与相对路径

绝对路径总是相对于根目录开始

相对路径:相对于程序的当前工作目录

绝对路径我们很好理解,那么相对路径是相对于当前工作目录的,那么我们如何知道当前工作目录是什么呢,参考  os.getcwd()

import os 
os.getcwd()

输出为一个字符串,如:'D:\\工程\\Python工程\\learnpython',这是我PyCharm工程当前的工作目录

如果你想更换当前的工作目录,参考os.chdir()

import os 
os.chdir('C:\Windows')

在了解了当前工作目录之后,我们就可以使用相对路径了,相对路径的使用很简单, .表示‘这个目录’,..表示‘这个目录的上一级目录’,如果你当前的目录为C:\data,那么 

           .\ 表示: C:\data

           ..\表示:C:\ 

处理绝对路径和相对路径

处理绝对路径和相对路径主要使用的是os.path模块:

将相对路径转化为绝对路径:os.path.abspath('相对路径')

将绝对路径转化为相对路径:os.path.relpath('绝对路径A',‘路径B’)

                                               返回的是一个字符串,表示绝对路径A相对于路径B的相对路径,如果未指定路径B,则默认是相对于当前工作目录。

判断是否为绝对路径:os.path.isabs(‘路径’) ,如果参数是一个绝对路径,就返回True,否则,返回False

获取路径的目录和文件名:os.path.dirname(‘C:\data\abc.txt’)  输出为C:\\data

                                           os.path.basename(‘C:\data\abc.txt’)  输出为abc.txt

获取文件的大小和文件夹的内容 

查看文件的字节数,注意不是文件夹:os.path.getsize(路径)

查看文件夹的内容:os.listdir(路径)  表示路径文件夹下的文件夹及文件,只深入一级,返回一个列表

文件的读写 

读写纯文本文件,整个过程比较简单:

(1)调用open()函数打开文件

(2)对文件进行读写

(3)调用close()关闭文件

调用open()函数打开文件:hellofile=open(路径),会在当前路径下打开文件,如果该路径下不存在该文件,则创建该文件。

                                             open()还有第二个参数,用于控制打开文件是用于读还是写,open(路径,'r')表示读,                                                           open(路径,'w')表示写,open(路径,‘a’)表示在文本最后添加内容

对文件进行读写: 读取文件的内容 filecontent = hellofile.read()  

                              将内容写入文件 filecontent = hellofile.write('字符串内容')

值得注意的是,如果是‘w’模式,则写入的内容会覆盖原始内容,如果是‘a’模式,则在原始内容上添加内容。

关闭文件:  hellofile.close()