Python Pathlib路径对象未转换为字符串

时间:2017-06-01 19:39:33

标签: python shutil pathlib

我正在尝试使用Shutil来使用Pathlib中的路径对象复制pdf文件,但是当我运行我的代码时,我得到错误" str对象不可调用" 使用str()将我的路径转换回字符串时。任何解释为什么会发生这种情况会非常有帮助。谢谢!

from pathlib import Path
from wand.image import Image as wandImage
import shutil
import sys
import os

def pdf2Jpeg(pdf_path):
    pdf = pdf_path
    jpg = pdf[:-3] + "jpg"
    img = wandImage(filename=pdf)
    img.save(filename=jpg)

src0 = Path(r"G:\Well Schematics\Well Histories\Merged")
dst0 = Path(r"G:\Well Schematics\Well Histories\Out")
if not dst0.exists():
    dst0.mkdir()

pdfs = []
api = ''
name = ''
pnum = ''
imgs = []

for pdf in src0.iterdir():
    pdfs.append(pdf)

for pdf in pdfs:

    if not dst0.exists():
        dst0.mkdir()

    str = str(pdf.stem)
    split = str.split('_')
    api = split[0]
    name = split[1]
    pnum = split[2]

    shutil.copy(str(pdf), str(dst0))
    for file in dst0.iterdir():
        newpdf = file
    pdf2Jpeg(str(newpdf))
    newpdf.unlink()

1 个答案:

答案 0 :(得分:4)

问题在于:

str = str(pdf.stem)

您正在覆盖值str,因此从循环的第二次迭代开始,str不再引用内置的str函数。为此变量选择其他名称。