|
|
|
---
|
|
|
|
title: 文件操作
|
|
|
|
date: 2020-06-18 16:53:34
|
|
|
|
updated: 2020-09-06 19:35:33
|
|
|
|
tags:
|
|
|
|
categories:
|
|
|
|
keywords:
|
|
|
|
description:
|
|
|
|
top_img:
|
|
|
|
comments:
|
|
|
|
cover:
|
|
|
|
toc:
|
|
|
|
toc_number:
|
|
|
|
toc_style_simple:
|
|
|
|
copyright:
|
|
|
|
copyright_author:
|
|
|
|
copyright_author_href:
|
|
|
|
copyright_url:
|
|
|
|
copyright_info:
|
|
|
|
katex: true
|
|
|
|
highlight_shrink:
|
|
|
|
aside:
|
|
|
|
---
|
|
|
|
|
|
|
|
### 基本方法
|
|
|
|
```python
|
|
|
|
import os
|
|
|
|
import shutil
|
|
|
|
alllist=os.listdir(u"D:\\notes\\python\\资料\\")
|
|
|
|
for i in alllist:
|
|
|
|
aa,bb=i.split(".")
|
|
|
|
if 'python' in aa.lower():
|
|
|
|
oldname= u"D:\\notes\\python\\资料\\"+aa+"."+bb
|
|
|
|
newname=u"d:\\copy\\newname"+aa+"."+bb
|
|
|
|
shutil.copyfile(oldname,newname)
|
|
|
|
```
|
|
|
|
### 其他方法
|
|
|
|
```python
|
|
|
|
#coding:utf-8
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import getpass
|
|
|
|
import shutil
|
|
|
|
# shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
|
|
|
|
# 创建多级目录:os.makedirs("/Users/ximi/version")
|
|
|
|
# 创建单个目录:os.mkdir("project")
|
|
|
|
# #复制文件
|
|
|
|
# shutil.copyfile('listfile.py', 'd:/test.py')
|
|
|
|
# shutil.rmtree("dir") 空目录、有内容的目录都可以删
|
|
|
|
# 检验给出的路径是否真地存:os.path.exists()
|
|
|
|
# getpass.getuser()该函数返回登陆的用户名,不需要参数
|
|
|
|
username = getpass.getuser()
|
|
|
|
# 改变当前工作目录
|
|
|
|
os.chdir('/Users/' + username + '/Documents/client/myProj/')
|
|
|
|
# shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
|
|
|
|
# 创建多级目录:os.makedirs("/Users/ximi/version")
|
|
|
|
# 创建单个目录:os.mkdir("project")
|
|
|
|
# #复制文件
|
|
|
|
# shutil.copyfile('listfile.py', 'd:/test.py')
|
|
|
|
# shutil.rmtree("dir") 空目录、有内容的目录都可以删
|
|
|
|
# 检验给出的路径是否真地存:os.path.exists()
|
|
|
|
# getpass.getuser()该函数返回登陆的用户名,不需要参数
|
|
|
|
username = getpass.getuser()
|
|
|
|
# 改变当前工作目录
|
|
|
|
os.chdir('/Users/' + username + '/Documents/client/myProj/')
|
|
|
|
```
|
|
|
|
### 文件拷贝shutil.copyfile(srcFilePath,dstFilePath)
|
|
|
|
```python
|
|
|
|
def handleVersionFile():
|
|
|
|
# os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径。
|
|
|
|
srcVersionFilePath = os.getcwd()+os.sep+"res/version/version.manifest"
|
|
|
|
dstVersionFilePath = os.getcwd()+os.sep+"tools/myProj/version/version.manifest"
|
|
|
|
|
|
|
|
versionDir = os.getcwd()+os.sep+"tools/myProj/version/"
|
|
|
|
if not os.path.exists(versionDir):
|
|
|
|
print versionDir, '\n配置文件目录不存在,创建目录...'
|
|
|
|
# os.mkdir(versionDir)
|
|
|
|
os.makedirs(versionDir)
|
|
|
|
print '创建配置文件目录成功!\n'
|
|
|
|
|
|
|
|
srcProjectFilePath = os.getcwd()+os.sep+"res/version/project.manifest"
|
|
|
|
dstProjectFilePath = os.getcwd()+os.sep+"tools/myProj/version/project.manifest"
|
|
|
|
|
|
|
|
print '拷贝配置文件开始...'
|
|
|
|
if os.path.exists(srcVersionFilePath):
|
|
|
|
shutil.copyfile(srcVersionFilePath,dstVersionFilePath)
|
|
|
|
|
|
|
|
if os.path.exists(srcProjectFilePath):
|
|
|
|
shutil.copyfile(srcProjectFilePath,dstProjectFilePath)
|
|
|
|
|
|
|
|
print '拷贝配置文件结束!\n'
|
|
|
|
```
|
|
|
|
### 文件夹的拷贝用shutil.copytree(dstResDir)
|
|
|
|
```python
|
|
|
|
def handleAssetsFile():
|
|
|
|
sourceSrcDir = os.getcwd()+os.sep+"src/"
|
|
|
|
dstSrcDir = os.getcwd()+os.sep+"tools/myProj/assets/src/"
|
|
|
|
sourceResDir = os.getcwd()+os.sep+"res/"
|
|
|
|
dstResDir = os.getcwd()+os.sep+"tools/myProj/assets/res/"
|
|
|
|
#复制目录,olddir和newdir都只能是目录,且newdir必须不存在
|
|
|
|
|
|
|
|
if os.path.exists(dstSrcDir):
|
|
|
|
print dstSrcDir, '存在先删除'
|
|
|
|
# 如果要递归删除目录的内容,可使用shutil.rmtree()函数
|
|
|
|
shutil.rmtree(dstSrcDir)
|
|
|
|
|
|
|
|
print '拷贝代码文件夹开始...'
|
|
|
|
shutil.copytree(sourceSrcDir, dstSrcDir)
|
|
|
|
print '拷贝代码文件夹结束!\n'
|
|
|
|
|
|
|
|
if os.path.exists(dstResDir):
|
|
|
|
print dstResDir, '存在先删除'
|
|
|
|
shutil.rmtree(dstResDir)
|
|
|
|
|
|
|
|
print '拷贝资源文件夹开始...'
|
|
|
|
shutil.copytree(sourceResDir, dstResDir)
|
|
|
|
print '拷贝资源文件夹结束!\n'
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
handleVersionFile()
|
|
|
|
handleAssetsFile()
|
|
|
|
```
|