我的计算机上有大约 500 个 PDF,我已经能够将它们转换为文本文件,并将其存储在单独的文件夹中。 我使用以下方法来获取 PDF 文件的大小:
import PyPDF2
import glob
from os import path
import os
from pathlib import *
statis =[]
base_path = Path("//File Path//PDFs")
pdf_files = list(base_path.glob('*.pdf'))
for f in pdf_files:
statinfo = os.stat(f)
size = statinfo.st_size
statis.append(os.stat(f).st_size) # this prints the size adding one by one, solve
print(statis)
我有相应的文本文件,我已经做了与上面相同的操作。
我需要输出的是PDF文件的名称、文件的大小以及相应的csv格式文本文件的大小 我已尝试将输出打印到 csv,但还需要文本文件中的文件大小
最佳答案
您可以在包含文本文件的文件夹上使用 glob('*.txt')
,然后使用 zip()
创建对 (pdf, txt)
然后您可以获得它们的大小,将所有内容作为列表/元组放入 statis
中,然后全部写入 csv
中。为了确保我对名字进行排序。
import os
from pathlib import Path
import csv
statis = []
pdf_folder = Path("folder_with_pdfs")
txt_folder = Path("folder_with_txts")
pdf_files = sorted(pdf_folder.glob('*.pdf'))
txt_files = sorted(txt_folder.glob('*.txt'))
for (pdf, txt) in zip(pdf_files, txt_files):
pdf_size = os.stat(pdf).st_size
txt_size = os.stat(txt).st_size
statis.append([pdf.name, txt.name, pdf_size, txt_size, pdf_size-txt_size])
print(pdf.name, pdf_size)
print(txt.name, txt_size)
print('---')
with open('output.csv', 'w') as fp:
csv_writer = csv.writer(fp)
csv_writer.writerow(['pdf name', 'txt name', 'pdf size', 'txt size', 'size diff'])
csv_writer.writerows(statis)
但是如果缺少文件就会出现问题。它将创建没有对应名称的对。最好获取 pdf 文件的名称并生成文本文件的路径。
import os
from pathlib import Path
import csv
statis = []
pdf_folder = Path("folder_with_pdfs")
txt_folder = Path("folder_with_txts")
pdf_files = pdf_folder.glob('*.pdf')
for pdf in pdf_files:
txt = txt_folder / pdf.name.replace('.pdf', '.txt')
if not txt.exists():
print('[!] missing:', txt.name)
continue
pdf_size = os.stat(pdf).st_size
txt_size = os.stat(txt).st_size
statis.append([pdf.name,txt.name,pdf_size, txt_size, pdf_size-txt_size]])
print(pdf.name, pdf_size)
print(txt.name, txt_size)
print('---')
with open('output.csv', 'w') as fp:
csv_writer = csv.writer(fp)
csv_writer.writerow(['pdf name', 'txt name', 'pdf size', 'txt size', 'size diff'])
csv_writer.writerows(statis)
关于python - 以csv或xlsx格式输出多个PDF文件及其对应文本文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447126/