IOError: Errno 13权限被拒绝D:/PDFs在运行Python循环时在Powershell中

2024-09-30 14:33:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows Powershell中运行一个循环,它运行pdfminer,pdf2的脚本文本.py在一个文件目录上。循环如下:

$PATH="D:/PDFdirectory"

foreach ($f in $PATH)
{   
python pdf2txt.py -o $f.txt "$f" "${f%.pdf}.txt"
}

当我尝试在Powershell中运行上面的代码时,遇到“权限被拒绝”错误。错误指向下面pdf2txt脚本中的outfp=file(outfile,'w+b')。在

^{pr2}$

我已经更改了pdf2中的读写条件文本.py为了与Windows兼容,现在我被卡住了。有人能帮我吗?在

谢谢


Tags: pathinpy文本txt脚本windows错误
1条回答
网友
1楼 · 发布于 2024-09-30 14:33:45

第一个问题是PowerShell脚本中的语法不正确。在

这一位:

"${f%.pdf}.txt"

请求找到一个名为f%.pdf的变量并将“.txt”添加到它的值以创建字符串。你没有这样的变量,所以你得到的只有“.txt”。在

您的第二个问题(我猜是)您似乎想要迭代该目录中的所有PDF文件。但你还没有指示PowerShell这么做。在

所以,我想你们需要这样的代码:

^{pr2}$

更多说明:

  • $f.DirectoryName-包含该文件的目录的路径
  • $f.BaseName-不带扩展名的文件名
  • "$($f.BaseName).txt"-括号中标出了将在构造最终字符串之前执行的子表达式。在
  • ($f.FullName -replace '.pdf$','.txt')-使用regex replace在完整文件名(和路径)的末尾找到.pdf,并将其替换为.txt。在

相关问题 更多 >