python文件夹操作

判断文件夹是否为空并且删除文件

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 24 10:14:29 2021

@author: xiaokangyu
"""
import os
import shutil
f="/Users/xiaokangyu/Desktop/11/"

## 只删除文件,不删除自文件夹
def del_file(path):
    ls = os.listdir(path)
    for i in ls:
        c_path = os.path.join(path, i)
        if os.path.isdir(c_path):
            del_file(c_path)
        else:
            os.remove(c_path)

## 判断文件夹是否为空
if not os.listdir(f):
    print("文件夹为空")
else:
    print("文件夹不空")
    del_file(f)

可以有一种更简单的实现方式

###############################################################
save_dir="./result/"+dataset
sc.settings.figdir=save_dir
print(adata) #basic information
###############################deleting files################################
#filelist = [ f for f in os.listdir(os.path.join(os.getcwd(),save_dir)) if f.endswith(".png") ]
filelist = [ f for f in os.listdir(os.path.join(os.getcwd(),save_dir))]
for f in filelist:
    os.remove(os.path.join(os.getcwd(),save_dir, f))
``
这样实现起来更简单方便

# 列举文件夹中的所有文件,并过滤掉不符合条件的文件

```python
pathlist=os.listdir("/data/wangdongxue/yxk/dataset/pancreas/")
print(pathlist)
pathlist= filter(lambda x: x[-4:]=="h5ad", pathlist)
list(pathlist)

结果如下
在这里插入图片描述

判断文件夹是否为空,如果空,则创建文件夹

method_list=["scDML"]
dataset_list=["bct"]
parent_path="/DATA2/zhangjingxiao/yxk/scDML_project_share/"
for dataset in dataset_list:
    for method in method_list:
        if(os.path.exists(parent_path+dataset)):
            print(dataset+" folder exists")
        else:
            os.mkdir(parent_path+dataset)
        
        if(os.path.exists(parent_path+dataset+"/"+method)):
            print(dataset+"/"+method+" folder exists")
        else:
            os.mkdir(parent_path+dataset+"/"+method)

python复制文件到指定文件夹

for dataset in dataset_list:
    print("dataset=",dataset)
    for method in method_list:
        print("method=",method)
        shutil.copyfile(read_parent_path+"evaluation/"+dataset+"/"+dataset+"_evaluation.csv",write_parent_path+dataset+"/"+dataset+"_evaluation.csv")

python 移动文件到指定文件夹

import shutil
shutil.move("07_20.docx","./") # 移动文件
shutil.move("../html转png/","./") # 移动文件夹

使用案例

import shutil
import numpy as np
reso_list=np.r_[np.linspace(2.0,4.0,11),np.linspace(5.0,10.0,6)]
print(reso_list)
for reso in reso_list:
    sfolder="./reso_"+str(np.round(reso,1))
    print(sfolder)
    shutil.move(sfolder,"./louvain/")

判断某个文件是否存在

os.path.exists()

使用案例

import scanpy as sc
import matplotlib.pyplot as plt
from utils import prepro
# prepro return adata

all_dataset = ["Quake_Smart-seq2_Limb_Muscle"]
for dataname in all_dataset:
    
    print("*"* 100)
    print("*"*50 + dataname +"*"*50)
    if(os.path.exists(base_dir+ dataname+"/"+ dataname+"_raw.h5ad")):
        adata =  sc.read(base_dir+ dataname+"/"+ dataname+"_raw.h5ad")
    else:
        adata = prepro(dataname)
        adata.write(base_dir+ dataname+"/"+ dataname+"_raw.h5ad")
    print(adata)
    sc.pp.normalize_total(adata, target_sum=1e4)
    sc.pp.log1p(adata)
    sc.pp.highly_variable_genes(adata, n_top_genes=2000, subset = True)#seurat_v3 neeed count based 
    sc.pp.scale(adata) #
    sc.tl.pca(adata)
    sc.pp.neighbors(adata)
    sc.tl.umap(adata)
    sc.pl.umap(adata,color=["celltype"],show=False)
    plt.savefig(base_dir+ dataname+"/"+ dataname+"_raw.png")
    print("*"* 100)
    print("*"* 100)
# adata.obs["cell_label"] number label
# adata.obs["celltype"] string label
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值