目标:利用R/Python实现文件的创建、删除、检测(是否存在)
相关知识:绝对路径、相对路径和动态路径
- 绝对路径:直接从盘符开始的描述文件(夹)所在的完整路径。△:可能泄露个人信息
# 例如通过下面这个路径别人就能知道我有彩虹六号这个游戏,并且存放路径一目了然
path = 'C:\Users\acer\Documents\My Games\Rainbow Six - Siege'
- 相对路径:通常使用".“或者”…"开头,从当前目录或者父目录开始的路径。 △:相对安全
#' R
> getwd() #获取当前工作路径
[1] "C:/Users/acer/Documents"
> setwd('..') #将父目录设为工作路径
> getwd()
[1] "C:/Users/acer"
> setwd('.') #将当前目录设为工作路径
> getwd()
[1] "C:/Users/acer"
- 动态路径:对文件进行批量操作时用到
#' R
#例如在F盘中创建批量文件
> namelist = list('Jack.jpg', 'Villian.txt', 'Chen.xls')
> path = 'F:/'
> for (i in namelist) {
+ file.create(paste(path, i, sep = '')) #paste()连接path与文件名i,然后file.create()创建
+ }
R R R
在 R R R 语言中,无须加载额外的 p a c k a g e package package,使用内置函数就能完成基础的文件操作
函数 | 功能 |
---|---|
getwd() | 获取当前工作路径 |
setwd( path ) | 设置工作路径为path |
dir() | 查看当前目录下的所有文件夹与文件 |
file.exists( filename ) | 判断文件是否存在 |
dir.exists( foldername ) | 判断文件夹是否存在 |
file.create( filename ) | 创建文件名为filename的文件 |
dir.create( dirname ) | 创建文件夹名为dirname的文件夹 |
file.copy( './a.txt', 'F:/' ) | 把当前目录下的a.txt文件复制到F盘下 |
file.remove( filename ) | 删除文件 |
paste( a, b, sep = x) | 以x为分隔符连接a和b,常在连接路径时使用 |
basename( 'F:/Jhon/a.txt' ) | 获取文件名,输出为’a.txt’ |
dirname( 'F:/Jhon/a.txt' ) | 获取文件所在目录名,输出为‘F:/Jhon’ |
P y t h o n Python Python
需要加载 os 库来完成基础的文件操作
import os
'''
△:注意不要使用 from os import *
因为os库中存在open()函数,
会与python内置的open()函数产生冲突,
不利于后面文件的创建
'''
import shutil #复制文件时使用该库
函数 | 功能 |
---|---|
os.getcwd() | 获取当前工作路径 |
os.chdir( path ) | 设置工作路径为path |
os.listdir() | 查看当前目录下的所有文件夹与文件 |
os.path.exists( filename ) | 判断文件或文件夹是否存在 |
open( filename, 'w' ) | 打开文件名为filename的文件 ,文件不存在时自动创建 |
os.mkdir( dirname ) | 创建文件夹名为dirname的文件夹 |
shutil.copy( './a.txt', 'F:/' ) | 把当前目录下的a.txt文件复制到F盘下 |
os.remove( filename ) | 删除文件 |
path.join( 'F:/', 'Jhon', sep = x) | 路径连接函数,输出为’F:/Jhon’ |
os.path.basename( 'F:/Jhon/a.txt' ) | 获取文件名,输出为’a.txt’ |
os.path.dirname( 'F:/Jhon/a.txt' ) | 获取文件所在目录名,输出为‘F:/Jhon’ |
'''
感谢:Vance、Ivan
'''