gpt4 book ai didi

当文件明确存在时,Python 文件未找到错误

转载 作者:行者123 更新时间:2023-11-29 09:02:37 27 4
gpt4 key购买 nike

我一直在开发一个项目,该项目获取 MySQL 转储并使用用户提供的信息恢复数据库。我不断收到文件无法找到错误,然后是我的自定义调试错误说明这一点。操作系统命令失败。

try:
username = self.username.get()
password = self.password.get()
database = self.database.get()
file = self.filename
print str(username)
print str(file)
test = os.system("mysql -u" + username + " -p" + password + " " + database + " <" + file)
if (test != 0):
print "OS COMMAND FAILED"
else:
print "pass"
print test

except:
print "fail"
print "Unexpected error:", sys.exc_info()[0]
raise

我还将继续进行研究,以防找到解决方案。我一直在查看 os.system 命令,但如果我在命令中正确指定文件名而不是从变量中检索它,问题就会消失。

所有变量均从输入框中提取。用户无法错误地键入文件名,因为程序根据 openfile 对话框填充文件名,并且不允许用户编辑该框。

错误文本:

C:/Documents and Settings/XPMUser/Desktop/src/database.sql

root

The system cannot find the file specified.

OS COMMAND FAILED

1

最佳答案

如果文件名中有空格,就会导致您所描述的问题。 shell 会将空格解析为分隔符。您可能想做类似的事情

import pipes
...
database + " < " + pipes.quote(filename)

更好的是,使用subprocess模块

test = subprocess.call(['mysql', '-u', username, '-p', password, database],
stdin=open(file))

关于当文件明确存在时,Python 文件未找到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com