刚开始实习,需要用python写脚本,记录一下常用的文件操作。文件操作需要用到的库:os
?
-
- 获取当前路径:os.getcwd(),返回值为一个字符串。例如:rootdir =?os.getcwd()
-
路径拼接:os.path.join(parameter1,parameter2,parameter3.....),返回值会按照参数顺序将之拼接为一个路径。例如:
- 当前目录的上级目录:rootdir =?os.path.join(os.getcwd(),"..")
- 当前目录下的path1目录:rootdir =?os.path.join(os.getcwd(),“path1”)
- 判断文件是否存在:if os.path.isfile(path):path表示文件路径。例如:if os.path.isfile(rootdir+"file.txt"):
- 判断文件夹是否存在:if os.path.exists(path):path表示文件夹。例如:if os.path.isfile(rootdir):
-
路径操作举例:
import os
#获取当前路径
print ‘***PathNow***‘
print os.getcwd()
print os.path.abspath(os.path.dirname(__file__))
#获取上级路径
print ‘***HighPath***‘
print os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
print os.path.abspath(os.path.dirname(os.getcwd()))
print os.path.abspath(os.path.join(os.getcwd(),".."))
#获取上上级路径
print ‘***HigherPath***‘
print os.path.abspath(os.path.join(os.getcwd(),"../.."))
依次输出py文件所在的绝对路径和上级绝对路径
-
文件的遍历:
-
list = os.listdir(path1)
for i in range(0,len(list)):
path = os.path.join(rootdir,list[i])
list是path1下的文件列表,path是path1下的文件绝对路径文件的指定查找:?
-
文件的查找
-
第一种查找方法:字符串分割
if os.path.splitext(path)[1]==".txt"
“.txt”为文件绝对路径的后缀,path表示文件绝对路径,路径最后一层为文件名
- 实现函数举例
def delate_type_file(target,filetype):
rootdir = os.path.join(os.getcwd(),target)
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for i in range(0,len(list)):
path = os.path.join(rootdir,list[i])
if os.path.splitext(path)[1]==".txt":#.txt为文件后缀,用filetype替换
print(os.path)
os.remove(path)
filetype为文件名后缀
-
第二种查找方法:判断文件绝对路径的截止字符
".txt“表示文件绝对路径后缀,path表示文件绝对路径,路径最后一层为文件名
- 实现函数举例:
def delate_type_file2(target,target)
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for f in list:
if f.endswith(".txt") #".txt"为文件后缀,可用filetype替换
#文件操作
filetype为文件名后缀
-
文件的删除
-
先判断是否要删除的绝对路径为有效文件,之后删除
if os.path.isfile(path):
os.remove(path)
os.remove函数参数为字符串,表示要删除的文件所处的绝对路径
- 删除函数举例:
#文件的删除:删除当前目录下target文件夹中的所有文件
def delate_file(target):
rootdir = os.path.join(os.getcwd(),target)
print rootdir
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
for i in range(0,list[i])
if os.path.isfile(path):
print(os.path)
os.remove(path)
target为当前py文件所在的文件夹中的一个子文件名
-
文件的重命名
-
调用函数:os.rename,需要传入两个参数。第一个参数为文件原始绝对路径,第二个参数为文件新的绝对路径
#path路径下把后缀为old_name的文件修改为后缀为new_name的文件
def rename_file(path,old_name,new_name):
list = os.listdir(path)
for f in list:
portion = os.path.splitext(f)
if portion[1] == old_name:
new = portion[0] + new_name
filenamedir = path + "" + f
newnamedir = path + "" + new
print(filenamedir)
print(newnamedir)
os.rename(filenamedir,newnamedir)
filenamedir为原始文件绝对路径,newnamedir为新文件绝对路径
-
文件的复制
-
需要调用shutil库的copyfile函数,copyfile函数需要传入两个参数。第一个参数为文件原始绝对路径,第二个参数为文件新的绝对路径
#文件的复制:从路径1复制指定类型的文件到路径2,需要调用shutil库的copyfile函数
from shutil import copyfile
def copy_file(path1,path2,last_name):
list = os.listdir(path1) #列出文件夹下所有的目录与文件
for i in range(0,list[i])
if path.endwith(last_name):
copyfile(path1,path2)
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|