哈哈哈,又更新啦~同志们你们没见过这么快更新的吧,见过的在评论区里扣个1~~~我今天又把我的程序优化了一下,优化、更新内容:可以读取zip文件里的文件数据、删除进度条部分、更改了注释(大家可以细看一下)、最后添加了按enter退出,以防用户没有看见最终结果程序就退出了。
好了,废话不多说,展示源代码:
#! python3.7.8
# -*- coding:utf-8 -*-
#作者:白客小李666
#创建日期:2022-11-28
#最新更新日期:2023-1-6
#版本号:v1.185
import os
import time
import shutil
import zipfile
from pathlib import Path
os.system("color B")
def main(answer):
"""主函数"""
if a == 1: #读取文件
print("请输入文件路径及文件名......")
lujing=input(">>>")
try:
with open(lujing) as f_o:
contents=f_o.read()
print(f"数据:{contents}")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("""[-]error:无法打开文件,错误原因可能是:
1.文件编码不是utf-8(之后会改)
2.其他未列出的错误
""")
if a == 2: #写入文件
print("请输入文件路径")
filedir=input(">>>")
print("请输入文件名(目前后缀只能用txt)")
filename=input(">>>")
filedir_and_filename=filedir + filename
print("请输入内容......")
neirong=input(">>>")
try:
with open(filedir_and_filename,'w') as f_o:
f_o.write(neirong)
print("创建文件成功!")
except:
print("没有此路径,是否为此文件创建新文件夹?")
print("(回答yes或no)")
yes_or_no=input(">>>")
if yes_or_no == 'yes':
os.makedirs(filedir)
time.sleep(0.2)
print("创建文件夹成功!")
with open(filedir_and_filename,'w') as f_o:
f_o.write(neirong)
time.sleep(0.2)
print("创建文件成功!")
else:
print("好的,将不创建文件夹")
if a == 3: #附加到文件
print("请输入文件路径和文件名......")
fd_and_fn=input(">>>")
print("请输入内容......")
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("发生错误,未找到文件")
else:
print("""
[-]error:无法附加到文件,原因可能是:
1.编码不是uff-8
""")
if a == 4: #复制文件
print("您是想复制文件还是文件夹?(复制文件答a,文件夹答b)")
copy_file_answer=input(">>>")
if copy_file_answer=='a':
print("请输入要复制的文件的路径和它的文件名......")
filelujing=input(">>>")
print("请输入您想要复制到的路径和复制后的文件的的文件名")
move_filelujing=input(">>>")
try:
shutil.copy(filelujing,move_filelujing)
print("复制成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能复制")
elif copy_file_answer=='b':
print("请输入文件夹路径和文件夹的名字")
dirlujing=input(">>>")
print("请输入要复制到的路径和复制后的文件夹的名字")
moved_wenjianjia_lujing=input(">>>")
try:
shutil.copytree(dirlujing,moved_wenjianjia_lujing)
print("复制成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能复制")
else:
print("无效指令")
if a == 5: #移动文件
print("您是想移动文件还是文件夹?(移动文件答a,文件夹答b)")
move_file_answer=input(">>>")
if move_file_answer == 'a':
print("请输入文件路径和文件名......")
move_ffile_lujing=input(">>>")
print("请输入移动后的路径和文件名")
moved_file=input(">>>")
try:
shutil.move(move_ffile_lujing,moved_file)
print("移动成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能移动")
elif move_file_answer == 'b':
print("请输入文件夹路径和文件夹名称")
move_dir_lujing=input(">>>")
print("请输入移动后的位置")
moved_dir_lujing=input(">>>")
try:
shutil.move(move_dir_lujing,moved_dir_lujing)
print("移动成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能移动")
if a == 6:#删除文件
print("这是删除文件!慎用!!!")
print("您是想删除文件还是文件夹?删除文件回答a,删除文件夹回答b")
del_file_or_dir=input(">>>")
if del_file_or_dir == 'a':
print("请输入您要删除的文件")
del_file=input(">>>")
try:
os.unlink(del_file)
print("删除成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能删除,可能是无法删除")
elif del_file_or_dir == 'b':
print("请输入您要删除的文件夹")
del_dir=input(">>>")
try:
shutil.rmtree(del_dir)
print("删除成功!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能删除,可能是无法删除")
else:
print("无效指令")
if a == 7:#处理zip文件
p=Path.home()
print("读取zip答a,解压文件答b,创建和添加到压缩文件答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("请添加您要读取的文件,选取结束请回答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"数据:{contents}")
os.unlink(f_l)
except:
print("此文件暂时无法读取")
except:
if FileNotFoundError:
print("无此文件")
else:
print("无法解压......")
time.sleep(1)
print(" ")
print(" ")
print("读取完成!")
except:
if FileNotFoundError:
print("发生错误,未找到文件")
else:
print("发生其他错误,未能读取")
elif zip_answer == 'b':
print("请指定zip文件路径和zip文件")
zip_file_lujing=input(">>>")
thezip=zipfile.ZipFile(p / f'{zip_file_lujing}')
print("解压压缩包的所有文件答a,解压单个文件答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("发生错误,未找到文件")
else:
print("发生其他错误,未能解压")
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("发生其他错误,未能解压")
elif zip_answer == 'c':
print("请指定zip文件路径和zip文件")
zip_file_lujing=input(">>>")
newzip=zipfile.ZipFile(f'{zip_file_lujing}','w')
yasuo_files=[]
active=True
print("现在请开始添加您想压缩的文件,选取结束请答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}个,它们是:")
print(Fail_files)
print("Process Files System[版本1.185]")
show_commands="""
请输入处理文件指令,指令如下:
1:读取文件
2:写入文件
3.附加到文件
4.复制文件或文件夹
5.移动文件或文件夹
6.删除文件或文件夹
7.处理zip文件"""
print(show_commands.lstrip())
a=int(input(">>>"))
main(a)
input("press enter to exit......")
以上部分就是我的代码,不足之处请指出,谢谢!!