# !/usr/bin/env python # -*- coding: utf-8 -*- # __author__=="HAI" """a""" # import sys import os
def GetDesktopPathAndCreateFile(filename=None, *args): """ 得到桌面路径创建文件 :param filename: -> x.txt :return: 创建常见文本文件 """ user_home_path = os.path.expanduser("~") if filename is None: target_path = os.path.join(user_home_path, 'Desktop') else: temp = list() for i in args: if isinstance(i, list): temp.extend(i) elif isinstance(i, tuple): temp.extend(list(i)) else: temp.append(i) temp = list(map(lambda x: str(x), temp)) # target_path = os.path.join(user_home_path, 'Desktop', *temp, filename) # python 可以这么写 if temp: temp_path = os.path.join(*temp) else: temp_path = '' target_path = os.path.join(user_home_path, 'Desktop', temp_path, filename) suffix = os.path.splitext(target_path)[-1] if not suffix: if not os.path.isdir(target_path): os.makedirs(target_path) else: flie_dirs, filename = os.path.split(target_path) if not os.path.isfile(target_path): if not os.path.isdir(flie_dirs): os.makedirs(flie_dirs) flie_suffix = (".txt", ".doc", ".xls", ".wps", ".html", ".py") if suffix.lower() in flie_suffix: with open(target_path, 'wb'): pass return target_path
def remove_file_or_dir(filepath, flag=False, rm_all=False): """ 删除当前文件 :param filepath: :param flag: 是否删除空目录 :param rm_all: 是否删除当前路径下的所有文件,桌面路径删除到桌面到头 :return: """ def temp(path): """ :param path: :return: """ n = os.path.dirname(path) return n if rm_all: def rm_file_dir(n): """ :param n: """ if n: if os.path.exists(n): list_path = os.listdir(n) if list_path: for _ in list_path: if os.path.isfile(os.path.join(n, _)): os.unlink(os.path.join(n, _)) # os.remove() unlink 和remove 一样 else: t_p = os.path.join(n, _) rm_file_dir(t_p) if os.path.isdir(t_p): if not os.listdir(t_p): os.rmdir(t_p) else: os.rmdir(n) def loop_rm(n, desk_path): """ :param n: :param desk_path: :return: """ if n == dest_path: n = filepath else: temp_path = '' row = 0 # 防止死循环 while n != dest_path: temp_path = n rm_file_dir(n) n = temp(n) row += 1 if row > 10000: return {"ret": False} rm_file_dir(temp_path) n = temp(filepath) dest_path = os.path.join(os.path.expanduser("~"), "Desktop") if dest_path in filepath or os.path.expanduser("~") in filepath: if n == os.path.expanduser("~") or n == os.path.dirname(os.path.expanduser("~")) or \ n == os.path.dirname(os.path.dirname(os.path.expanduser("~"))): return {"ret": False} loop_rm(n, dest_path) else: if os.path.dirname(os.path.dirname(os.path.expanduser("~")))in n: return {"ret": False} loop_rm(filepath, n) elif not flag: if os.path.isfile(filepath): os.remove(filepath) else: if os.path.isfile(filepath): os.remove(filepath) n = temp(filepath) while not os.listdir(n): os.rmdir(n) n = temp(n) return {"ret": True}