操作系统与文件路径
我们知道,在不同的操作系统中,如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()