In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-03-03 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
What is the file, folder, compressed package processing module in the shutil module? in view of this problem, this article introduces the corresponding analysis and solutions in detail, hoping to help more partners who want to solve this problem to find a more simple and easy way.
Shutil.copyfileobj (fsrc, fdst [, length]) copies the contents of the file to another file, and length is the size of each replication.
Guessage.py content guessing age game: allows the user to guess up to three times. After three guesses, the user is asked to continue to play. If you enter Y, you can continue to guess three times, otherwise exit "" age = 23count = 0while count.
< 3: try: guess_age = int(input("input the age of you think:")) except ValueError: print("you should input one number!") count = count + 1 continue if guess_age >23: print ("the age you input is too big!") Elif guess_age
< 23: print("the age you input is too small!") else: print("excellent!you are right!") break count = count + 1 while count == 3: your_choice = input("you only have three chances,would you like to continue(Y|y/N|n):") if your_choice.lower() == "y": count = 0 elif your_choice.lower() =="n": break else: print("your input is illegal!input again!")"正确的程序运行代码"#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilshutil.copyfileobj(open("guessage.py","r",encoding="utf-8"),open("guessage_new.py","w",encoding="utf-8",10))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyProcess finished with exit code 0"不加编码时,有报错信息"#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilshutil.copyfileobj(open("guessage.py","r"),open("guessage_new.py","w"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyTraceback (most recent call last): File "E:/PythonProject/python-test/BasicGrammer/test.py", line 5, in shutil.copyfileobj(open("guessage.py","r"),open("guessage_new.py","w")) File "D:\software2\Python3\install\lib\shutil.py", line 79, in copyfileobj buf = fsrc.read(length)UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 29: illegal multibyte sequenceProcess finished with exit code 1guessage_new.py"""猜年龄游戏:允许用户最多猜三次,猜了三次后,询问是都继续玩,如果输入Y,可以继续猜三次,否则退出"""age = 23count = 0while count < 3: try: guess_age = int(input("input the age of you think:")) except ValueError: print("you should input one number!") count = count + 1 continue if guess_age >23: print ("the age you input is too big!") Elif guess_age
< 23: print("the age you input is too small!") else: print("excellent!you are right!") break count = count + 1 while count == 3: your_choice = input("you only have three chances,would you like to continue(Y|y/N|n):") if your_choice.lower() == "y": count = 0 elif your_choice.lower() =="n": break else: print("your input is illegal!input again!") shutil.copyfile(src, dst)拷贝文件 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilshutil.copyfile("guessage.py","guessage_new.py")#目标文件无需存在print("guessage.py",os.stat("guessage.py"))print("guessage_new.py",os.stat("guessage_new.py"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyguessage.py os.stat_result(st_mode=33206, st_ino=9007199254741804, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1555571381)guessage_new.py os.stat_result(st_mode=33206, st_ino=7881299347900196, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1557104769, st_mtime=1557104769, st_ctime=1557104769)Process finished with exit code 0 shutil.copymode(src, dst)仅拷贝权限。内容、组、用户均不变 "程序代码"#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilshutil.copymode("guessage.py","guessage_new.py")#目标文件必须存在#目标文件不存在时E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyTraceback (most recent call last): File "E:/PythonProject/python-test/BasicGrammer/test.py", line 5, in shutil.copymode("guessage.py","guessage_new.py") File "D:\software2\Python3\install\lib\shutil.py", line 144, in copymode chmod_func(dst, stat.S_IMODE(st.st_mode))FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'guessage_new.py'Process finished with exit code 1#新建一个文件guessage_new.py,内容为空,再运行程序#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.copymode("guessage.py","guessage_new.py")print("guessage.py",os.stat("guessage.py"))print("guessage_new.py",os.stat("guessage_new.py"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyguessage.py os.stat_result(st_mode=33206, st_ino=9007199254741804, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1555571381)guessage_new.py os.stat_result(st_mode=33206, st_ino=2533274790397796, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=61, st_atime=1557104202, st_mtime=1557104202, st_ctime=1557104202)Process finished with exit code 0 shutil.copystat(src, dst)仅拷贝状态的信息,包括:mode bits, atime, mtime, flags #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.copystat("guessage.py","guessage_new.py") #目标文件必须存在print("guessage.py",os.stat("guessage.py"))print("guessage_new.py",os.stat("guessage_new.py"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyguessage.py os.stat_result(st_mode=33206, st_ino=9007199254741804, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1555571381)guessage_new.py os.stat_result(st_mode=33206, st_ino=2814749767108452, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=61, st_atime=1555571381, st_mtime=1555571381, st_ctime=1557104576)Process finished with exit code 0 shutil.copy(src, dst)拷贝文件和权限 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.copy("guessage.py","guessage_new.py")#目标文件可以不存在print("guessage.py",os.stat("guessage.py"))print("guessage_new.py",os.stat("guessage_new.py"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyguessage.py os.stat_result(st_mode=33206, st_ino=9007199254741804, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1555571381)guessage_new.py os.stat_result(st_mode=33206, st_ino=6473924464346978, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1557104716, st_mtime=1557104716, st_ctime=1557104716)Process finished with exit code 0 shutil.copy2(src, dst)拷贝文件和状态信息 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.copy2("guessage.py","guessage_new.py")print("guessage.py",os.stat("guessage.py"))print("guessage_new.py",os.stat("guessage_new.py"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyguessage.py os.stat_result(st_mode=33206, st_ino=9007199254741804, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1555571381)guessage_new.py os.stat_result(st_mode=33206, st_ino=7318349394478946, st_dev=3466358229, st_nlink=1, st_uid=0, st_gid=0, st_size=941, st_atime=1555571381, st_mtime=1555571381, st_ctime=1557104918)Process finished with exit code 0 shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None)递归的去拷贝文件夹 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport os# 目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除shutil.copytree('ee', 'new_ee', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))print(os.listdir("ee"))print(os.listdir("new_ee"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py['eee']['eee']Process finished with exit code 0 shutil.rmtree(path[, ignore_errors[, onerror]])递归的去删除文件 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.rmtree('new_ee')print(os.listdir("ee"))print(os.listdir("new_ee"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyTraceback (most recent call last):['eee'] File "E:/PythonProject/python-test/BasicGrammer/test.py", line 10, in print(os.listdir("new_ee"))FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'new_ee'Process finished with exit code 1 shutil.move(src, dst)递归的去移动文件,它类似mv命令,其实就是重命名。 #!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.move('ee','new_ee')print(os.listdir("ee"))#move之后,源文件就不存在了print(os.listdir("new_ee"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyTraceback (most recent call last): File "E:/PythonProject/python-test/BasicGrammer/test.py", line 9, in print(os.listdir("ee"))FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'ee'Process finished with exit code 1#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport shutilimport osshutil.move('new_ee','mkdir') #可以移到另一个文件夹中print(os.listdir("mkdir"))E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py['new_ee']Process finished with exit code 0 shutil.make_archive(base_name, format,...)创建压缩包并返回文件路径,例如:zip、tar base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,如 data_bak =>Save to current path such as: / tmp/data_bak = > Save to / tmp/format: compressed package category, "zip", "tar", "bztar", "gztar" root_dir: folder path to be compressed (default current directory) owner: user, default current user group: group, default current group logger: used for logging Usually the logging.Logger object #! / usr/bin/env python#-*-coding:utf-8-*-# Author: vitaimport shutil# packages the files under test2 and places them in the current program directory import shutilimport osret = shutil.make_archive ("test2_bak", 'gztar') Root_dir='test2') # the target package can be an existing print (os.listdir ()) # package the files under test2 and place them in the mkdir directory import shutilret = shutil.make_archive ("mkdir/test2_bak", 'gztar', root_dir='test2') print (os.listdir ("mkdir")) E:\ PythonProject\ python-test\ venvP3\ Scripts\ python.exe E:/PythonProject/python-test/BasicGrammer/test.py [' .idea', 'guessage.py'' 'guessage_new.py', 'mkdir',' requirements.txt', 'test.py',' test2', 'test2_bak.tar.gz',' _ _ pycache__', 'write file .txt', 'write file .txt.tmp', 'format .py', 'guessing age game .jpg', 'read file .txt'] ['new_ee'' The processing of the compressed package by 'test2_bak.tar.gz'] Process finished with exit code 0shutil calls two modules, ZipFile and TarFile. Details: zipfile compression & decompression import zipfile# compression z = zipfile.ZipFile ('laxi.zip', 'w') z.write (' a.log') z.write ('data.data') z.close () # decompression z = zipfile.ZipFile (' laxi.zip', 'r') z.extractall (path='.') z.close () tarfile compression & decompression import tarfile# compression, egon.tar this compression package may not exist And you can recursively put the folder into a compressed package > t=tarfile.open ('/ tmp/egon.tar','w') > t.add ('/ test1/a.py',arcname='a.bak') > t.add ('/ test1/b.py',arcname='b.bak') > t.close () # decompress > t=tarfile.open ('/ tmp/egon.tar') T.extractall (/ egon') > > t.close () the answers to the questions about files, folders, and compressed package processing modules in the shutil module are shared here. I hope the above content can help you to a certain extent, if you still have a lot of doubts to be solved, you can follow the industry information channel to learn more related knowledge.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.