鱼C论坛

 找回密码
 立即注册
查看: 5886|回复: 37

:FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。

[复制链接]
发表于 2020-7-7 16:37:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 xiaoqu525 于 2020-7-7 16:41 编辑

小白写了一个读取pdf内容并以pdf某个内容给PDF文件重命名的。在pycharm、官方IDE下直接运行系统不报错。然后我进行打包exe,弹出报错窗口,Failed to execute script XXXX(文件名)[b][b][b][/b][/b][/b]。。然后用pyinstaller -F -D XXX.py进行打包后,cmd运行exe文件,弹出报错信息。
代码:
import pdfplumber
import os
import tkinter.messagebox
files = [f for f in os.listdir('.') if os.path.isfile(f)]
list = []
for i in files:  # 遍历循环文件目录
    if i[-3:] == 'pdf':
        list.append(i)
for j in list:
    if j[-3:] != 'pdf':
        list.remove(j)  # 删除后缀名不是pdf的文件
# print(list)
a = int(len(list))
name = ''
for index in range(a):
    b = list[index]
    path = str(os.getcwd()) + '\\' + b
    with pdfplumber.open(path) as pdf:
        # 获取第一页
        first_page = pdf.pages[0]
        # 解析文本
        text = first_page.extract_text()
        # 解析表格
        tables = first_page.extract_tables()
        pdf.close()
        for table in tables:
            table_str = str(table)
            table_str = table_str.replace(' ', '')
            for i in table_str:
                if i == 'W':
                    index_W = table_str.index('W')
                    # print(index_W)  获取W出现的第一个索引值
                    name = table_str[int(index_W):(int(index_W + 18))]
    os.renames(path ,  name + '.pdf')
tkinter.messagebox.showinfo("提示", "重命名已完成")



报错信息:

F:\pycharm_work\PDF_New02\dist\PDF_New>PDF_New.exe
Traceback (most recent call last):
  File "PDF_New.py", line 35, in <module>
  File "os.py", line 267, in renames
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'F:\\pycharm_work\\PDF_New02\\dist\\PDF_New\\发货单.pdf' -> '.pdf'
[7320] Failed to execute script PDF_New

F:\pycharm_work\PDF_New02\dist\PDF_New>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 16:39:31 | 显示全部楼层


打包过程 cmd 会显示些错误,你认真看看,应该是打包时候缺少哪些依赖模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:42:17 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:39
打包过程 cmd 会显示些错误,你认真看看,应该是打包时候缺少哪些依赖模块

还不能上传图片,上传了代码和错误。。cmd打包的时候没有报错信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 16:44:43 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 16:42
还不能上传图片,上传了代码和错误。。cmd打包的时候没有报错信息



不是红色的 你看到 cmd 打包过程中有显示 Fild 这些字样就是缺少了某些东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:46:11 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:44
不是红色的 你看到 cmd 打包过程中有显示 Fild 这些字样就是缺少了某些东西

Microsoft Windows [版本 10.0.18363.720]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\qw914>f:

F:\>cd F:\pycharm_work\PDF_New02

F:\pycharm_work\PDF_New02>pyinstaller -F -D PDF_New.py
67 INFO: PyInstaller: 3.6
67 INFO: Python: 3.6.8
69 INFO: Platform: Windows-10-10.0.18362-SP0
69 INFO: wrote F:\pycharm_work\PDF_New02\PDF_New.spec
69 INFO: UPX is not available.
96 INFO: Extending PYTHONPATH with paths
['F:\\pycharm_work\\PDF_New02', 'F:\\pycharm_work\\PDF_New02']
97 INFO: checking Analysis
98 INFO: Building Analysis because Analysis-00.toc is non existent
98 INFO: Initializing module dependency graph...
107 INFO: Caching module graph hooks...
116 INFO: Analyzing base_library.zip ...
2488 INFO: Caching module dependency graph...
2608 INFO: running Analysis Analysis-00.toc
2610 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by C:\Users\qw914\AppData\Local\Programs\Python\Python36\python.exe
2663 INFO: Analyzing F:\pycharm_work\PDF_New02\PDF_New.py
3888 INFO: Processing pre-find module path hook   distutils
3888 INFO: distutils: retargeting to non-venv dir 'C:\\Users\\qw914\\AppData\\Local\\Programs\\Python\\Python36\\lib'
4694 INFO: Processing pre-safe import module hook   setuptools.extern.six.moves
5079 INFO: Processing pre-find module path hook   site
5080 INFO: site: retargeting to fake-dir 'C:\\Users\\qw914\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\PyInstaller\\fake-modules'
8049 INFO: Processing module hooks...
8049 INFO: Loading module hook "hook-Crypto.py"...
8076 INFO: Loading module hook "hook-distutils.py"...
8076 INFO: Loading module hook "hook-encodings.py"...
8157 INFO: Loading module hook "hook-lib2to3.py"...
8160 INFO: Loading module hook "hook-numpy.core.py"...
8299 INFO: Loading module hook "hook-numpy.py"...
8301 INFO: Loading module hook "hook-PIL.Image.py"...
8696 INFO: Loading module hook "hook-PIL.py"...
8697 INFO: Excluding import 'PyQt5'
8699 INFO:   Removing import of PyQt5.QtGui from module PIL.ImageQt
8699 INFO:   Removing import of PyQt5.QtCore from module PIL.ImageQt
8701 INFO: Import to be excluded not found: 'PyQt4'
8701 INFO: Import to be excluded not found: 'PySide'
8701 INFO: Excluding import 'tkinter'
8704 INFO:   Removing import of tkinter from module PIL.ImageTk
8705 INFO: Import to be excluded not found: 'FixTk'
8705 INFO: Loading module hook "hook-PIL.SpiderImagePlugin.py"...
8707 INFO: Excluding import 'tkinter'
8709 INFO: Import to be excluded not found: 'FixTk'
8709 INFO: Loading module hook "hook-pkg_resources.py"...
9010 INFO: Processing pre-safe import module hook   win32com
9236 INFO: Excluding import '__main__'
9238 INFO:   Removing import of __main__ from module pkg_resources
9239 INFO: Loading module hook "hook-pydoc.py"...
9239 INFO: Loading module hook "hook-PyQt5.py"...
9357 INFO: Loading module hook "hook-PyQt5.QtCore.py"...
9424 INFO: Loading module hook "hook-PyQt5.QtGui.py"...
9549 INFO: Loading module hook "hook-pythoncom.py"...
9805 INFO: Loading module hook "hook-pywintypes.py"...
10057 INFO: Loading module hook "hook-setuptools.py"...
10564 INFO: Loading module hook "hook-sysconfig.py"...
10565 INFO: Loading module hook "hook-win32com.py"...
10913 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
10914 INFO: Loading module hook "hook-xml.py"...
10960 INFO: Loading module hook "hook-_tkinter.py"...
11096 INFO: checking Tree
11096 INFO: Building Tree because Tree-00.toc is non existent
11097 INFO: Building Tree Tree-00.toc
11216 INFO: checking Tree
11217 INFO: Building Tree because Tree-01.toc is non existent
11218 INFO: Building Tree Tree-01.toc
11283 INFO: Looking for ctypes DLLs
11412 INFO: Analyzing run-time hooks ...
11417 INFO: Including run-time hook 'pyi_rth__tkinter.py'
11418 INFO: Including run-time hook 'pyi_rth_pkgres.py'
11420 INFO: Including run-time hook 'pyi_rth_win32comgenpy.py'
11422 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
11433 INFO: Looking for dynamic libraries
12195 INFO: Looking for eggs
12195 INFO: Using Python library C:\Users\qw914\AppData\Local\Programs\Python\Python36\python36.dll
12196 INFO: Found binding redirects:
[]
12204 INFO: Warnings written to F:\pycharm_work\PDF_New02\build\PDF_New\warn-PDF_New.txt
12308 INFO: Graph cross-reference written to F:\pycharm_work\PDF_New02\build\PDF_New\xref-PDF_New.html
12358 INFO: checking PYZ
12358 INFO: Building PYZ because PYZ-00.toc is non existent
12359 INFO: Building PYZ (ZlibArchive) F:\pycharm_work\PDF_New02\build\PDF_New\PYZ-00.pyz
13544 INFO: Building PYZ (ZlibArchive) F:\pycharm_work\PDF_New02\build\PDF_New\PYZ-00.pyz completed successfully.
13566 INFO: checking PKG
13566 INFO: Building PKG because PKG-00.toc is non existent
13567 INFO: Building PKG (CArchive) PKG-00.pkg
13587 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
13588 INFO: Bootloader C:\Users\qw914\AppData\Local\Programs\Python\Python36\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
13588 INFO: checking EXE
13589 INFO: Building EXE because EXE-00.toc is non existent
13589 INFO: Building EXE from EXE-00.toc
13590 INFO: Appending archive to EXE F:\pycharm_work\PDF_New02\build\PDF_New\PDF_New.exe
13606 INFO: Building EXE from EXE-00.toc completed successfully.
13610 INFO: checking COLLECT
13610 INFO: Building COLLECT because COLLECT-00.toc is non existent
13611 INFO: Building COLLECT COLLECT-00.toc
15988 INFO: Building COLLECT COLLECT-00.toc completed successfully.

F:\pycharm_work\PDF_New02>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:46:47 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:44
不是红色的 你看到 cmd 打包过程中有显示 Fild 这些字样就是缺少了某些东西

大佬,这是打包信息。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:47:28 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:44
不是红色的 你看到 cmd 打包过程中有显示 Fild 这些字样就是缺少了某些东西

我有加其他群,没人理我,自己百度解决的弄了两天了。。还是没整好,求求大佬帮我看看咋样能处理好。。。欲哭无泪啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 16:49:37 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 16:47
我有加其他群,没人理我,自己百度解决的弄了两天了。。还是没整好,求求大佬帮我看看咋样能处理好。。。 ...

确实...打包信息没看出错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:50:21 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:49
确实...打包信息没看出错误

就好诡异啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 16:51:58 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 16:50
就好诡异啊。。。

你代码方便发不? 我试着看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:52:58 | 显示全部楼层
Twilight6 发表于 2020-7-7 16:51
你代码方便发不? 我试着看看

我已经发上来啦。你康康
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:09:14 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 16:52
我已经发上来啦。你康康

失败...我也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:13:20 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 16:52
我已经发上来啦。你康康
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'F:\\pycharm_work\\PDF_New02\\dist\\PDF_New\\发货单.pdf' -> '.pdf'
这个报错的话你换个文件夹应该就能解决吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 17:17:26 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-7 17:13

文件只能放在.py或者.exe下。新建一个文件夹再移动过去怎么弄啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 17:33:13 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-7 17:13

重命名再移动,会不会也报占用进程.....还是移动再重命名...待会试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:33:59 | 显示全部楼层
xiaoqu525 发表于 2020-7-7 17:33
重命名再移动,会不会也报占用进程.....还是移动再重命名...待会试试




我也搞不明白了,帮不到你了,只能靠你自己了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:51:28 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2020-7-7 18:04 编辑

我觉得可能是因为你的tables里面存在相同的字符串,导致最后出来的name出现相同的情况,所以第二次重命名失败。还有一种可能:os.renames的参数path是完整路径,而name+'.pdf'不是完整路径,可能有问题(因为renames是可以连目录路径一起重命名的,所以你一个参数带完整路径一个没有,问题很可能出在这,建议楼主把两个参数都带完整路径,原路径也不要改变,或者用rename来重命名)。楼主还犯了个错误:起的变量名list和内置list类重名了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 18:27:46 | 显示全部楼层
hrp 发表于 2020-7-7 17:51
我觉得可能是因为你的tables里面存在相同的字符串,导致最后出来的name出现相同的情况,所以第二次重命名失 ...

谢谢大佬指点,我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 19:07:00 | 显示全部楼层
hrp 发表于 2020-7-7 17:51
我觉得可能是因为你的tables里面存在相同的字符串,导致最后出来的name出现相同的情况,所以第二次重命名失 ...

# coding = utf-8
import pdfplumber
import os
import tkinter.messagebox
files = [f for f in os.listdir('.') if os.path.isfile(f)]
list_pdf = []
for i in files:  # 遍历循环文件目录
    if i[-3:] == 'pdf':
        list_pdf.append(i)
for j in list_pdf:
    if j[-3:] != 'pdf':
        list_pdf.remove(j)  # 删除后缀名不是pdf的文件
# print(list)
a = int(len(list_pdf))
name = ''
path_new = ''
for index in range(a):
    b = list_pdf[index]
    path_old = str(os.getcwd()) + '\\' + b
    #print(path)
    with pdfplumber.open(path_old) as pdf:
        # 获取第一页
        first_page = pdf.pages[0]
        # 解析文本
        text = first_page.extract_text()
        # 解析表格
        tables = first_page.extract_tables()
        pdf.close()
        for table in tables:
            table_str = str(text)
            table_str = table_str.replace(' ', '')
            for i in table_str:
                if i == 'W':
                    index_W = table_str.index('W')
                    #print(index_W)  #获取W出现的第一个索引值
                    name = table_str[int(index_W):(int(index_W + 18))]
                    path_new = str(os.getcwd()) + '\\' + name + '.pdf'
                    break
        #print(path_new)
    os.renames(path_old ,  path_new)
tkinter.messagebox.showinfo("提示", "重命名已完成")



我按照大佬说的进行了一下改动,发现还是一样的结果提示进程占用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 19:46:47 From FishC Mobile | 显示全部楼层
xiaoqu525 发表于 2020-7-7 19:07
# coding = utf-8
import pdfplumber
import os

独占模式打开文件没关闭?具体报错信息是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 04:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表