## Python 文件操作
### 首先导入`os`模块
```Python
# encoding: utf-8
import os
以下关于字符串前面有个r,是为了防止\转义,我习惯加上,这样方便
得到当前工作目录,即当前Python脚本工作的目录路径
os.getcwd()
改变当前工作目录,例如
os.chdir(r"C:\Users\WXC\Desktop")
重命名文件,注意路径
os.rename(current_file_name, new_file_name)
删除文件,用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。强调必须是文件,而不是文件夹或者目录,注意路径
os.remove(file_name)
在当前目录下创建新的目录
os.mkdir("Python")
删除目录
os.rmdir("Python")
返回指定目录下的所有文件和文件夹名,返回的是个列表
os.listdir(r"C:\Users\WXC\Desktop")
对文件夹操作,显示当前绝对路径
os.path.abspath("文件夹名字")
**下面前面的==In==和==Out==别复制进去啊##
连接目录与文件名或目录 结果为path/name,功能仅仅是连接的作用,而不能生成。将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
In: os.path.join('jone','dump.raw.txt')
Out: 'jone\\dump.raw.txt'
#上述生成的路径,如果不写入信息,则最终不会有该文件夹
#不过生成的路径可以结合os.mkdir()函数生成进一步的路径。
In: path = os.path.join('jone\\path','dump.raw.txt')
In: path
Out: 'jone\\path\\dump.raw.txt'
In: os.mkdir(path)
将path分割成路径名和文件名,如果完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在
In: os.path.split('jone')
Out: ('', 'jone')
In: os.path.split('dump.raw.txt')
Out: ('', 'dump.raw.txt')
读取一个文件,注意第一个参数的路径问题,默认当前路径
with open("file_name","r") as f:
data = f.read()#默认读取所有文字
print(data)
在文件中写入内容,注意第一个参数的路径问题,默认当前路径
with open("file_name","w") as f:
f.write()
关于读取里面设置编码,比方说utf-8
s = "树莓派是什么派"
#如果是以‘w’的方式写入,写入前一定要进行encoding,否则会报错
with open("file_name","w",encoding="utf-8") as f:
f.write(s)
s2 = s.encode("utf-8")#转换为bytes的形式
#这时候写入方式一定要是‘wb’,且一定不能加encoding参数
with open("file_name",'wb') as f:
f.write(s2)
建议读写都加上编码,准没错,就像这样
with open("file_name","r",encoding="utf-8") as f:
with open("file_name","w",encoding="utf-8") as f:
最后说一说with open(...) as f:
相当于不用你自己关闭文件,文件写入之后你得关闭它才能正常写入进去
普通的
f = open(...)
f.write(...)
f.close()