我一直试图找出答案,但没有具体针对我的情况。我是编程新手。 我在一个文件夹中有20-30个.csv文件。 我想遍历所有文件,并将每个csv文件压缩成.zip文件(不同的文件夹)
C:\users\xyz\Source\NumberOne.csv
C:\users\xyz\Source\NumberTwo.csv
C:\users\xyz\Source\NumberThree.csv
C:\users\xyz\Dest\NumberOne.zip
C:\users\xyz\Dest\NumberTwo.zip
C:\users\xyz\Dest\NumberThree.zip
我尝试过来自互联网的不同代码功能,但没有任何内容适用于单个文件。我拥有的工作代码,将所有文件压缩到1个zip文件夹中。
请帮助
答案 0 :(得分:1)
这应该有效。您需要在运行它时传入源目录和目标目录(或修改代码)。
import os
import sys
import zipfile
def csv_files(source_dir):
for filename in os.listdir(source_dir):
if filename.endswith('.csv'):
yield filename
source_dir = sys.argv[1] # r'C:\users\xyz\Source\'
dest_dir = sys.argv[2] # r'C:\users\xyz\Dest\'
os.chdir(dest_dir) # To work around zipfile limitations
for csv_filename in csv_files(source_dir):
file_root = os.path.splitext(csv_filename)[0]
zip_file_name = file_root + '.zip'
zip_file_path = os.path.join(dest_dir, zip_file_name)
with zipfile.ZipFile(zip_file_path, mode='w') as zf:
zf.write(csv_filename)
答案 1 :(得分:0)
要压缩文件,您可以使用:
import commands
cmd = 'zip -j ' + zipfile + ' ' + file
commands.getstatusoutput(cmd)