关于文件操作
# 检索指定路径下后缀是 py 的所有文件:
Stack Overflow
530***193@qq.com
import os.path ls = [] def getFile(path, ls): fileList = os.listdir(path) # 获取path目录下的所有文件 try: for tmp in fileList: pathTmp = os.path.join(path, tmp) # 获取path与tmp组合后的完整路径 if os.path.isdir(pathTmp): # 判断是否为目录 是则递归查找 getFile(pathTmp, ls) elif tmp[-3:].upper() == '.PY': # 不是目录的话就判断是否是py结尾 ls.append(pathTmp) except PermissionError: pass def main(): path = input("请输入路径:").strip() if os.path.isdir(path): # 判断路径是否为目录 getFile(path, ls) print(ls) print(len(ls)) else: print("输入的文件路径有误!") if __name__ == '__main__': main()
# 批量换取文件中的单词或符号
Stack Overflow
530***193@qq.com
def file_replace(file_name, rep_word, new_word): f_read = open(file_name) content = [] count = 0 for eachline in f_read: if rep_word in eachline: count = count+eachline.count(rep_word) eachline = eachline.replace(rep_word, new_word) content.append(eachline) decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \ % (file_name, count, rep_word, rep_word, new_word)) if decide in ['YES', 'Yes', 'yes']: f_write = open(file_name, 'w') f_write.writelines(content) f_write.close() f_read.close() file_name = input('请输入文件名:') rep_word = input('请输入需要替换的单词或字符:') new_word = input('请输入新的单词或字符:') file_replace(file_name, rep_word, new_word)
import os def search_file(start_dir, target) : os.chdir(start_dir) for each_file in os.listdir(os.curdir) : ext = os.path.splitext(each_file)[1] if ext in target : vedio_list.append(os.getcwd() + os.sep + each_file + os.linesep) if os.path.isdir(each_file) : search_file(each_file, target) # 递归调用 os.chdir(os.pardir) # 递归调用后切记返回上一层目录 start_dir = input('请输入待查找的初始目录:') program_dir = os.getcwd() target = ['.mp4', '.avi', '.rmvb'] vedio_list = [] search_file(start_dir, target) f = open(program_dir + os.sep + 'vedioList.txt', 'w') f.writelines(vedio_list) f.close()