luxingzhao 发表于 2020-11-21 20:09:28

求助,如何将这几条代码,精简成一条

import zipfile,os


with zipfile.ZipFile('2021 USNews美国文理学院排名.zip','w') as target:
    for i in os.walk('2021 USNews美国文理学院排名'):
      for n in i:
            target.write(''.join((i,'\\',n)))

with zipfile.ZipFile('2020 QS美国大学排名.zip','w') as target:
    for i in os.walk('2020 QS美国大学排名'):
      for n in i:
            target.write(''.join((i,'\\',n)))

with zipfile.ZipFile('2021 USNews美国大学排名.zip','w') as target:
    for i in os.walk('2021 USNews美国大学排名'):
      for n in i:
            target.write(''.join((i,'\\',n)))

with zipfile.ZipFile('美国热门社区大学.zip','w') as target:
    for i in os.walk('美国热门社区大学'):
      for n in i:
            target.write(''.join((i,'\\',n)))

suchocolate 发表于 2020-11-21 20:09:29

luxingzhao 发表于 2020-11-21 20:20
你好,我这个功能是将文件夹添加为压缩包,但是这样写后,文件夹压缩后,压缩包里没文件了

那你看看改改吧,简化的思路就是重复的东西就做成函数。

suchocolate 发表于 2020-11-21 20:15:32

import zipfile, os


def simple(filename):
    with zipfile.ZipFile(filename, 'w') as target:
      for i in os.walk(filename):
            for n in i:
                target.write(''.join((i, '\\', n)))


if __name__ == '__main__':
    files = ['2021 USNews美国文理学院排名.zip', '2021 USNews美国文理学院排名.zip', '2020 QS美国大学排名.zip', '2021 USNews美国大学排名.zip', '美国热门社区大学.zip']
    for file in files:
      simple(file)

luxingzhao 发表于 2020-11-21 20:20:23

suchocolate 发表于 2020-11-21 20:15


你好,我这个功能是将文件夹添加为压缩包,但是这样写后,文件夹压缩后,压缩包里没文件了{:5_109:}

luxingzhao 发表于 2020-11-21 20:28:10

suchocolate 发表于 2020-11-21 20:27
那你看看改改吧,简化的思路就是重复的东西就做成函数。

好的,谢谢

suchocolate 发表于 2020-11-21 20:35:39

luxingzhao 发表于 2020-11-21 20:28
好的,谢谢

不行的话,你发我2个zip文件,我试试。

luxingzhao 发表于 2020-11-21 20:41:49

suchocolate 发表于 2020-11-21 20:35
不行的话,你发我2个zip文件,我试试。

发您了,是把文件夹压缩成zip{:5_109:}

suchocolate 发表于 2020-11-21 20:49:35

luxingzhao 发表于 2020-11-21 20:41
发您了,是把文件夹压缩成zip我看错了路径和文件名,改了一下:

import zipfile, os


def simple(filename):
    with zipfile.ZipFile(filename + '.zip', 'w') as target:
      for i in os.walk(filename):
            for n in i:
                target.write(''.join((i, '\\', n)))


if __name__ == '__main__':
    files = ['2021 USNews美国文理学院排名', '2021 USNews美国文理学院排名', '2020 QS美国大学排名', '2021 USNews美国大学排名', '美国热门社区大学']
    for f in files:
      simple(f)


luxingzhao 发表于 2020-11-21 20:57:43

suchocolate 发表于 2020-11-21 20:49
我看错了路径和文件名,改了一下:

完美,谢谢大神{:5_95:}
页: [1]
查看完整版本: 求助,如何将这几条代码,精简成一条