一、判断存在

os.path.exists("goal")
判断文件夹是否存在
import os
dirs = '/Users/joseph/work/python/'
if not os.path.exists(dirs):
    os.makedirs(dirs)	# 创建文件夹
判断文件是否存在
import os
filename = '/Users/joseph/work/python/poem.txt'
if not os.path.exists(filename):
    os.system(r"touch {}".format(path)) #调用系统命令行来创建文件
os.path.isdir("goal") 	# 判断目标是否目录
os.path.isfile("goal") 	# 判断目标是否文件

二、创建,复制, 删除, 重命名

创建文件,文件夹
os.mknod("test.txt") 	# 创建空文件
os.mkdir("file") # 创建文件夹
复制文件,文件夹:
shutil.copyfile("oldfile", "newfile") 	# oldfile和newfile都只能是文件
shutil.copy("oldfile", "newfile") 		# oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
shutil.copytree("olddir", "newdir") 	# olddir和newdir都只能是目录,且newdir必须不存在
删除文件,文件夹
os.remove("file")
os.rmdir("dir") 		# 只能删除空目录
shutil.rmtree("dir") 	# 空目录、有内容的目录都可以删
重命名文件,文件夹
os.rename("oldname","newname") 		# 文件或目录都是使用这条命令
移动文件,文件夹
shutil.move("oldpos","newpos")

三、保存, 读取

.npy 文件
data = [1, 2, 3]
m = np.array(data)
np.save('data.npy',m)		# 保存
a = np.load('data.npy')		# 读取
.txt 文件
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")	# 保存
np.loadtxt(FILENAME, dtype=int, delimiter=' ')		# 读取
  • 追加到文件末尾
with open("test.txt", "ab") as f:
    np.savetxt(f, a)

with open() as f: 相关参数:
r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+: 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w: 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+: 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  • 参数设置
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n',   header='', footer='', comments='# ', encoding=None)
numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None,   converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

fmt参数:控制数据格式

  • fmt='%.3e' (小数点后保留3位); fmt='%d' (整数);fmt='%5d' (数据长度)

delimiter参数:每列数据之间的分割符号,默认为空格

  • delimiter='|'delimiter='%%'delimiter=','

newline参数:每行数据之间的分割符,默认换行
header和footer参数:在文件头和文件尾增加的说明语句
comments参数:注释时使用的字符或者字符串

四、提取,修改,添加文件名

import os
path='C:/Users/Administrator/Desktop/s_hall/5' # 待修改文件名的文件夹路径
datanames=os.listdir(path)                     # 读取该文件夹下的文件名datanames(是一个列表)
 
for i in datanames:   # i是原来的名字
    n=i.split('.')
    new_i=n[0][:2]    # 保留文件名中的前两位, n[0]指'.'之前的部分,n[0][:2]值前部分里的第0-2个字符
    new_name=new_i+'.jpg'   # 新的文件名
    if i.endswith(".JPG"):  # 判断是否是.jpg文件
        os.rename(os.path.join(path,i),os.path.join(path,new_name))  #重命名
import os
path='C:/Users/Administrator/Desktop/s_hall_mobile/1'
datanames=os.listdir(path)
 
for i in datanames:   
    n=i.split('.')
    new_i=n[0]+"1"          # 在此处有区别:把想要增加的内容,以字符串的形式放在末尾即可
    new_name=new_i+'.jpg'
    if i.endswith(".jpg"):  # 判断是否是.jpg文件
        os.rename(os.path.join(path,i),os.path.join(path,new_name))

参考链接

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐