簡體   English   中英

In Python I'm trying to convert all files in directory from PDF to CSV, then edit csv with Pandas before saving to new folder

[英]In Python I'm trying to convert all files in directory from PDF to CSV, then edit csv with Pandas before saving to new folder

我有一個目錄C:/Users/Desktop/folder/ 我想將每個文件從 PDF 轉換為 CSV,使用 Pandas 和 NumpPy 對新轉換的文件進行更改,然后將其保存到子目錄

當它只是一個文件時,我可以使用它,但是當添加代碼以使其適用於目錄中的所有文件時,它不起作用。 代碼,照原樣,什么都不做。 當我運行它時,它沒有任何過程也沒有錯誤完成。

import numpy as np
import pandas as pd
import tabula
import glob
from pathlib import Path

files = glob.glob("C:/Users/Desktop/folder/*.pdf")
childfolder = Path("C:/Users/Desktop/folder/childfolder/")

for file in files:
    # convert PDF into CSV
    tabula.convert_into(file, "Convert.csv", output_format="csv", pages='all')

    # read newly converted csv
    df = pd.read_csv("Convert.csv")

    # add empty row in 0th position
    df = pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns)
    df1 = df.append(df, ignore_index=True)

    # name columns added
    df1.rename(columns={ df.columns[0]: "Record"}, inplace = True)
    df1.rename(columns={ df.columns[1]: "Field"}, inplace = True)
    df1.rename(columns={ df.columns[2]: "FieldValue"}, inplace = True)
    df1.rename(columns={ df.columns[3]: "Reason"}, inplace = True)
    # df1.drop(df.columns[1], axis = 1)

    # drop empty rows to clean up 
    new_df = df1.dropna(how='any',subset = ['Record'])

    # output
    new_df.to_csv(ChildFolder)

如何轉換目錄中的所有文件,進行編輯,然后將它們保存到不同的目錄?

new_df.to_csv()的參數必須是文件名,而不是文件夾名。 將文件名與文件夾名連接起來,得到 output 文件。

new_df.to_csv(os.path.join(ChildFolder, file.replace(".pdf", ".csv"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM