【问题标题】:Compressing files from a Python Dataframe从 Python 数据框中压缩文件
【发布时间】:2021-02-11 09:01:33
【问题描述】:

我在 Python 中使用 panda 创建了一个数据框。数据框使用 .csv 文件中的两列文件路径和文件名,将它们连接起来,然后完整输出。

我正在尝试使用此输出来压缩有问题的文件名,但它无法正常工作,只是覆盖了文件。

import pandas as pd
import zipfile
import os
from os import path
from os.path import basename
 
column_names = ["Path", "Filename", r"Path"]
df = pd.read_csv(r"resources.csv", usecols= ["Path","Filename"])
df = df.dropna()
df = ["/".join(i) for i in zip(df["Path"].map(str),df["Filename"].map(str))]

rows = list(df)
for row in rows:
    

    print (row)

我在 for row in rows 块中添加了 zipfile.ZipFile 条目,但替换为 print(row) 以生成列表。

谁能帮我指出正确的方向。

【问题讨论】:

    标签: python dataframe python-3.7


    【解决方案1】:
    
    import pandas as pd
    import zipfile
    import os
    from os import path
    from os.path import basename
    
    
     
    column_names = ["Path","Filename" r"Path"]
    df = pd.read_csv(r"resources.csv", usecols= ["Path","Filename"])
    df["fullpath"] = df[["Path","Filename"]].agg("/".join, axis=1)
    df["zipfilename"] = df["Filename"].str.replace(r'.py', '')
    
    rows = list(df.values)
    
    for row in rows:
        zip = zipfile.ZipFile(row[3] + '.zip', 'w', zipfile.ZIP_DEFLATED)
        zip.write(row[2], basename(row[1]))
        zip.close()
    
        print (row)
    

    经过一番摸索后,我设法从数据框中准确获取了我需要的内容并压缩了单个文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 2019-04-06
      相关资源
      最近更新 更多