Hoy, escribí un script por lotes simple. Para que lo utilicen colegas que no tienen un entorno, está empaquetado en un archivo ejecutable único ejecutable a través de pyinstaller -F xxx.py
Cuando se depuró el archivo py, todo fue normal, pero después de empaquetarlo en un archivo exe, la operación pareció ser un flashback. Finalmente, a través del método del comando cmd. \ Xxx.exe, se encontró que ocurría el error WinError 123. A través de la investigación, se encontró que después de empaquetar pyinstaller, os.path y sys.path estaban vacíos o algunos valores inesperados. Debe haber un principio, pero no hay más investigación aquí.
Puede empaquetar y probar el siguiente código usted mismo:
import sys
import os
print(sys.path[0])
print(sys.argv[0])
print(os.path.dirname(os.path.realpath(sys.executable)))
print(os.path.dirname(os.path.realpath(sys.argv[0])))
————————————————
版权声明:本文为CSDN博主「买菇凉的小火披」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31801903/article/details/81666124
Ponga el código del problema a continuación.
import os
import sys
import shutil
import time
#%%
#获取当前路径下所有文件夹
#os.path.abspath(__file__)
#1.获取当前文件所在路径
now_path = os.path.abspath(__file__)
print(now_path)
#切换工作路径到当前的空间
os.chdir(now_path)
#显示文件夹名
folders_path = os.listdir()
#判断文件数量,筛选获取只有1个文件的文件路径
#folder_name_noly_one = []
#%%
for i in folders_path:
path = now_path + '\\' + i
if os.path.isdir(i) and len(os.listdir(i)) == 1:
file_path = path + '\\' + os.listdir(i)[0]
#os.path.abspath(os.listdir(i))
#i = os.path.abspath(os.listdir(i))
#folder_name_noly_one.append(i)
shutil.move(file_path,now_path)
os.rmdir(path)
else:
continue
print('运行完成!')
time.sleep(5)
#将其内部文件剪切出来
El último código modificado
#%%
import os
import sys
import shutil
import time
import tkinter as tk
from tkinter import filedialog
#%%
#获取当前路径下所有文件夹
#os.path.abspath(__file__)
#1.获取当前文件所在路径
now_path = filedialog.askdirectory()
print(now_path)
#切换工作路径到当前的空间
os.chdir(now_path)
#显示文件夹名
folders_path = os.listdir()
#判断文件数量,筛选获取只有1个文件的文件路径
#folder_name_noly_one = []
#%%
for i in folders_path:
path = now_path + '\\' + i
if os.path.isdir(i) and len(os.listdir(i)) == 1:
file_path = path + '\\' + os.listdir(i)[0]
#os.path.abspath(os.listdir(i))
#i = os.path.abspath(os.listdir(i))
#folder_name_noly_one.append(i)
shutil.move(file_path,now_path)
os.rmdir(path)
else:
continue
print('运行完成!')
time.sleep(5)
#将其内部文件剪切出来
#删除空文件夹
# %%