基于Python實(shí)現(xiàn)文件處理程序
今天,我終于把處理文件程序完成啦!本程序無bug,它的功能有九種,是:讀取文件、寫入文件
、附加到文件、復(fù)制文件或文件夾、移動(dòng)文件或文件夾、刪除文件或文件夾、處理zip文件、遍歷目錄、清理垃圾。
上代碼:
#! python3.7.8 # -*- coding:utf-8 -*- #作者:白客小李666 #創(chuàng)建日期:2022-11-28 #最新更新日期:2023-1-7 #版本號:v1.2 import os import time import shutil import zipfile import datetime from pathlib import Path os.system("color B") def main(answer): """主函數(shù)""" if a == '1': #讀取文件 print("請輸入文件路徑及文件名......") lujing=input(">>>") try: with open(lujing) as f_o: contents=f_o.read() print(f"數(shù)據(jù):{contents}") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("""[-]error:無法打開文件,錯(cuò)誤原因可能是: 1.文件編碼不是utf-8(之后會(huì)改) 2.其他未列出的錯(cuò)誤 """) elif a == '2': #寫入文件 print("請輸入文件路徑") filedir=input(">>>") print("請輸入文件名(目前后綴只能用txt)") filename=input(">>>") filedir_and_filename=filedir + filename print("請輸入內(nèi)容......") neirong=input(">>>") try: with open(filedir_and_filename,'w') as f_o: f_o.write(neirong) print("創(chuàng)建文件成功!") except: print("沒有此路徑,是否為此文件創(chuàng)建新文件夾?") print("(回答yes或no)") yes_or_no=input(">>>") if yes_or_no == 'yes': os.makedirs(filedir) time.sleep(0.2) print("創(chuàng)建文件夾成功!") with open(filedir_and_filename,'w') as f_o: f_o.write(neirong) time.sleep(0.2) print("創(chuàng)建文件成功!") else: print("好的,將不創(chuàng)建文件夾") elif a == '3': #附加到文件 print("請輸入文件路徑和文件名......") fd_and_fn=input(">>>") print("請輸入內(nèi)容......") the_content=input(">>>") try: with open(fd_and_fn,'a') as f_o: f_o.write(f"\n{the_content.lstrip()}") time.sleep(0.2) print("完成!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print(""" [-]error:無法附加到文件,原因可能是: 1.編碼不是uff-8 """) elif a == '4': #復(fù)制文件 print("您是想復(fù)制文件還是文件夾?(復(fù)制文件答a,文件夾答b)") copy_file_answer=input(">>>") if copy_file_answer=='a': print("請輸入要復(fù)制的文件的路徑和它的文件名......") filelujing=input(">>>") print("請輸入您想要復(fù)制到的路徑和復(fù)制后的文件的的文件名") move_filelujing=input(">>>") try: shutil.copy(filelujing,move_filelujing) print("復(fù)制成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能復(fù)制") elif copy_file_answer=='b': print("請輸入文件夾路徑和文件夾的名字") dirlujing=input(">>>") print("請輸入要復(fù)制到的路徑和復(fù)制后的文件夾的名字") moved_wenjianjia_lujing=input(">>>") try: shutil.copytree(dirlujing,moved_wenjianjia_lujing) print("復(fù)制成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能復(fù)制") else: print("無效指令") elif a == '5': #移動(dòng)文件 print("您是想移動(dòng)文件還是文件夾?(移動(dòng)文件答a,文件夾答b)") move_file_answer=input(">>>") if move_file_answer == 'a': print("請輸入文件路徑和文件名......") move_ffile_lujing=input(">>>") print("請輸入移動(dòng)后的路徑和文件名") moved_file=input(">>>") try: shutil.move(move_ffile_lujing,moved_file) print("移動(dòng)成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能移動(dòng)") elif move_file_answer == 'b': print("請輸入文件夾路徑和文件夾名稱") move_dir_lujing=input(">>>") print("請輸入移動(dòng)后的位置") moved_dir_lujing=input(">>>") try: shutil.move(move_dir_lujing,moved_dir_lujing) print("移動(dòng)成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能移動(dòng)") elif a == '6':#刪除文件 print("這是刪除文件!慎用!!!") print("您是想刪除文件還是文件夾?刪除文件回答a,刪除文件夾回答b") del_file_or_dir=input(">>>") if del_file_or_dir == 'a': print("請輸入您要?jiǎng)h除的文件") del_file=input(">>>") try: os.unlink(del_file) print("刪除成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能刪除,可能是無法刪除") elif del_file_or_dir == 'b': print("請輸入您要?jiǎng)h除的文件夾") del_dir=input(">>>") try: shutil.rmtree(del_dir) print("刪除成功!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能刪除,可能是無法刪除") else: print("無效指令") elif a == '7':#處理zip文件 p=Path.home() print("讀取zip答a,解壓文件答b,創(chuàng)建和添加到壓縮文件答c") zip_answer=input(">>>") if zip_answer == 'a': try: print("請指定zip文件路徑和zip文件") zip_file_lujing=input(">>>") thezip=zipfile.ZipFile(p / f'{zip_file_lujing}') files=thezip.namelist() print("此壓縮文件里面的文件有:") print(files) print(""" """) print("是否要查看文件的信息?(y/n)") see_answer=input(">>>") if see_answer == 'y': active=True see_files=[] print("請?zhí)砑幽x取的文件,選取結(jié)束請回答q") while active: duqu_file=input(">>>") if duqu_file == 'q': active=False else: see_files.append(duqu_file) for f in see_files: try: thezip.extract(f,"C:\Windows\Temp") f_l=f'C:\Windows\Temp\{f}' print(f_l) try: with open(f_l) as f_o: contents=f_o.read() print(f"數(shù)據(jù):{contents}") os.unlink(f_l) except: print("此文件暫時(shí)無法讀取") except: if FileNotFoundError: print("無此文件") else: print("無法解壓......") time.sleep(1) print(" ") print(" ") print("讀取完成!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能讀取") elif zip_answer == 'b': print("請指定zip文件路徑和zip文件") zip_file_lujing=input(">>>") thezip=zipfile.ZipFile(p / f'{zip_file_lujing}') print("解壓壓縮包的所有文件答a,解壓單個(gè)文件答b") jieya=input(">>>") if jieya == 'a': print("請指定解壓路徑") jieya_lujing=input(">>>") try: print("解壓中......") thezip.extractall(jieya_lujing) time.sleep(0.5) print("完成!") except: if FileNotFoundError: print("發(fā)生錯(cuò)誤,未找到文件") else: print("發(fā)生其他錯(cuò)誤,未能解壓") elif jieya == 'b': print("請指定文件") jieya_file=input(">>>") print("請指定解壓路徑......") jieya_lujing=input(">>>") try: thezip.extract(jieya_file,jieya_lujing) print("解壓完成!") except: if FileNotFoundError: print("未找到要解壓的文件,解壓失敗") else: print("發(fā)生其他錯(cuò)誤,未能解壓") elif zip_answer == 'c': print("請指定zip文件路徑和zip文件") zip_file_lujing=input(">>>") newzip=zipfile.ZipFile(f'{zip_file_lujing}','w') yasuo_files=[] active=True print("現(xiàn)在請開始添加您想壓縮的文件,選取結(jié)束請答q") while active: the_yasuo_file=input(">>>") if the_yasuo_file == 'q': active=False else: yasuo_files.append(the_yasuo_file) print("開始壓縮文件......") finish_files=0 fail_files=0 Fail_files=[] for f in yasuo_files: try: newzip.write(f'{f}',compress_type=zipfile.ZIP_DEFLATED) finish_files=finish_files+1 except: fail_files=fail_files+1 Fail_files.append(f) print("完成!") print(f"其中壓縮失敗的文件有{fail_files}個(gè),它們是:") print(Fail_files) else: print("無效指令") elif a == '8':#遍歷目錄 print("請回答您要遍歷的目錄") bianli_dir=input(">>>") try: for foldername,subfolders,filenames in os.walk(bianli_dir): print('當(dāng)前文件夾:'+foldername) for subfolder in subfolders: print('在'+foldername+'里的子文件夾:'+subfolder) for filename in filenames: print('在'+foldername+'里的文件:'+filename) time.sleep(1) print(" ") print("遍歷完成!") except: if FileNotFoundError: print("沒有此目錄") else: print("此文件夾無法遍歷") elif a == '9': print("開始清理垃圾!") ls=os.listdir("C:\Windows\Temp") fail_files=0 Fail_files=[] for i in ls: try: os.unlink(f"C:\Windows\Temp\{i}") except: fail_files=fail_files+1 Fail_files.append(f"C:\Windows\Temp\{i}") ls=os.listdir("C:\Windows\Prefetch") for i in ls: try: os.unlink(f"C:\Windows\Prefetch\{i}") except: fail_files=fail_files+1 Fail_files.append(f"C:\Windows\Prefetch\{i}") ls=os.listdir("C:\Windows\SoftwareDistribution\Download") for i in ls: try: os.unlink(f"C:\Windows\SoftwareDistribution\Download\{i}") except: fail_files=fail_files+1 Fail_files.append(f"C:\Windows\SoftwareDistribution\Download\{i}") ls=os.listdir("C:\Windows\System32\LogFiles") for i in ls: try: os.unlink(f"C:\Windows\System32\LogFiles\{i}") except: fail_files=fail_files+1 Fail_files.append(f"C:\Windows\System32\LogFiles\{i}") time.sleep(1) print(" ") print("清理完成!") time.sleep(0.7) print(f'有{fail_files}個(gè)文件清除失敗') print(f'它們是:{Fail_files}') else: print("無效指令") if __name__ =='__main__': print("Process Files System[版本1.2]") show_commands=""" 請輸入處理文件指令,指令如下: 1:讀取文件 2:寫入文件 3.附加到文件 4.復(fù)制文件或文件夾 5.移動(dòng)文件或文件夾 6.刪除文件或文件夾 7.處理zip文件 8.遍歷目錄 9.清理垃圾""" print(show_commands.lstrip()) while True: a=input(">>>") if a == 'q': break else: main(a) time.sleep(0.5) input("press enter to exit......")
↑就是此程序的所有代碼,請大家指點(diǎn)錯(cuò)誤。
到此這篇關(guān)于基于Python實(shí)現(xiàn)文件處理程序的文章就介紹到這了,更多相關(guān)Python文件處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python腳本破解壓縮文件口令實(shí)例教程(zipfile)
這篇文章主要給大家介紹了關(guān)于Python腳本破解壓縮文件口令(zipfile)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06TF-IDF的算法原理以及Python實(shí)現(xiàn)過程
這篇文章主要介紹了TF-IDF的算法原理以及Python實(shí)現(xiàn)過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2018-01-01一小時(shí)學(xué)會(huì)TensorFlow2之大幅提高模型準(zhǔn)確率
這篇文章主要介紹了TensorFlow2之大幅提高模型準(zhǔn)確率,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09python 用opencv實(shí)現(xiàn)霍夫線變換
這篇文章主要介紹了python 如何用opencv實(shí)現(xiàn)霍夫線變換,幫助大家更好的理解和使用python處理圖片,感興趣的朋友可以了解下2020-11-11