小泉app 发表于 2020-4-23 23:47:56

关于pyinstall打包文件打开的问题

请问各位大佬,我用python编写了一段打开保存文件的代码(就是简单的输入文件名、输入内容、保存的简单程序,存在':w'的终止行为):
之后用pyinstaller进行包装成为text.exe,但是我当我用‘此电脑’的‘快速搜索‘功能,打开这个文件只是输入文件名按回车准备书写内容时却显示:
PermissionError:Permission denied:'xxx'(此处不是面板显示内容:xxx代表我输入的文件名)
Failed to execute script text            
之后快速闪退
但是如果按照文件夹逐层打开后找到text.txt文件,则可以正常运行,可以正常输入文件名,按下回车后也可以输入内容。
我的疑问是:
请问为什么相同的文件用不同的查找方式打开,会出现不同的结果?
这个问题真的百思不得其解,请大佬们帮忙求解一下。

Hello. 发表于 2020-4-23 23:55:53

是不是放在桌面了,桌面文件夹没有权限的,你可以放到其他盘

小泉app 发表于 2020-4-24 00:11:56

Hello. 发表于 2020-4-23 23:55
是不是放在桌面了,桌面文件夹没有权限的,你可以放到其他盘

不是放在桌面上的,那个文件的位置是D:\dist

txxcat 发表于 2020-4-24 00:34:41

open一个文件不存在,会创建一个文件,创建文件的目录如果没有权限限制,有可能是目录下有一个名字和你创建的文件名字一样的子目录。你最好检查一下test.exe所在目录下的文件结构,顺便发一下源码。

小泉app 发表于 2020-4-24 00:36:41

txxcat 发表于 2020-4-24 00:34
open一个文件不存在,会创建一个文件,创建文件的目录如果没有权限限制,有可能是目录下有一个名字和你创建 ...

这是我的文件代码:
print('最后一行输入\':w\'保存')
file_name = input('请输入你想要的文件名:')
f = open(file_name,'w')
temp = []
while True:
    content = input('')
    if ':w' in content:
      break
    else:
      _str = content + '\n'
      temp.append(_str)
f.writelines(temp)
f.close()

小泉app 发表于 2020-4-24 00:39:40

txxcat 发表于 2020-4-24 00:34
open一个文件不存在,会创建一个文件,创建文件的目录如果没有权限限制,有可能是目录下有一个名字和你创建 ...

主要是在’此电脑‘中用两种不同的方式找到那个文件(text.exe)并且打开,一个报错,一个可以正常运行。在这里很懵。。。。。

txxcat 发表于 2020-4-24 01:33:56

本帖最后由 txxcat 于 2020-4-24 01:35 编辑

小泉app 发表于 2020-4-24 00:39
主要是在’此电脑‘中用两种不同的方式找到那个文件(text.exe)并且打开,一个报错,一个可以正常运行。 ...

我添加了print(os.getcwd()),然后打包测试,真相大白,原来在搜索中打开exe,当前目录是C:\Windows\system32。

小泉app 发表于 2020-4-24 09:29:22

txxcat 发表于 2020-4-24 01:33
我添加了print(os.getcwd()),然后打包测试,真相大白,原来在搜索中打开exe,当前目录是C:\Windows\sy ...

哦哦,我去试了,确实这个问题出现在这里,非常感谢!!!
页: [1]
查看完整版本: 关于pyinstall打包文件打开的问题