Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用python中的用户界面将输入和输出的位置传递给extnal命令_Python_User Interface_Tkinter - Fatal编程技术网

无法使用python中的用户界面将输入和输出的位置传递给extnal命令

无法使用python中的用户界面将输入和输出的位置传递给extnal命令,python,user-interface,tkinter,Python,User Interface,Tkinter,我对python完全陌生 我试图使用用户界面传递输入和输出的位置,如本次讨论[1]所示: 但在这里,我调用了一个外部命令,并试图通过传递输入和输出的位置从python代码中运行它,就像上面提到的情况一样 from tkinter import * from tkinter import filedialog import numpy as np import gdal gdal.UseExceptions() import os def your_code(input_file, interm

我对python完全陌生

我试图使用用户界面传递输入和输出的位置,如本次讨论[1]所示:

但在这里,我调用了一个外部命令,并试图通过传递输入和输出的位置从python代码中运行它,就像上面提到的情况一样

from tkinter import *
from tkinter import filedialog

import numpy as np
import gdal
gdal.UseExceptions()
import os
def your_code(input_file, intermediate_file, output_file):

    cmd = "gpt F:\saikiran\myGraph.xml -Psource=input_file - Ptarget=intermediate_file"
    os.system(cmd)
    ds = gdal.Open(intermediate_file)
    band = ds.GetRasterBand(1)
……………………………………………...
#gen_map_button.place(x=230, y=300)
gen_map_button.pack()

root.mainloop()
但我遇到了这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\User\Anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
  File "C:\Users\User\GUI-pywt.py", line 145, in gen_map
your_code(input_filename, intermediate_filename, output_filename)
  File "C:\Users\User\GUI-pywt.py", line 15, in your_code
ds = gdal.Open(intermediate_file)
  File "C:\Users\User\Anaconda3\lib\site-packages\osgeo\gdal.py", line 3251, in Open
return _gdal.Open(*args)
RuntimeError: F:/saikiran/ddd: No such file or directory

我犯了什么错误?

您的
cmd
不正确

将字符串与值串联

cmd = "gpt F:\saikiran\myGraph.xml -Psource=" + input_file + " - Ptarget=" + intermediate_file 
或者使用字符串格式

cmd = "gpt F:\saikiran\myGraph.xml -Psource={} - Ptarget={}".format(input_file, intermediate_file) 
使用Python 3.6或3.7,您可以使用
f-string

cmd = f"gpt F:\saikiran\myGraph.xml -Psource={input_file} - Ptarget={intermediate_file}" 

当前
cmd

"gpt F:\saikiran\myGraph.xml -Psource=input_file - Ptarget=intermediate_file"
将创建名为的文件

 intermediate_file
不是


而且它会在
gdal.Open()中产生问题
您的
cmd
不正确

将字符串与值串联

cmd = "gpt F:\saikiran\myGraph.xml -Psource=" + input_file + " - Ptarget=" + intermediate_file 
或者使用字符串格式

cmd = "gpt F:\saikiran\myGraph.xml -Psource={} - Ptarget={}".format(input_file, intermediate_file) 
使用Python 3.6或3.7,您可以使用
f-string

cmd = f"gpt F:\saikiran\myGraph.xml -Psource={input_file} - Ptarget={intermediate_file}" 

当前
cmd

"gpt F:\saikiran\myGraph.xml -Psource=input_file - Ptarget=intermediate_file"
将创建名为的文件

 intermediate_file
不是


它会在
gdal.Open()

磁盘上有文件/文件夹
F:/saikiran/ddd
吗?您的
cmd
不正确。要将字符串与变量值连接起来,请使用
cmd=“…-Psource=“+input_file+”-Ptarget=“+intermediate_file
或使用字符串格式
cmd=“…-Psource={}-Ptarget={}”。format(input_file,intermediate_file)
对于Python 3.7或3.6,您可以使用f-string
cmd f'.-Psource={input_file}-Ptarget}-Ptarget={intermediate_file}“
F:/saikiran/ddd
我将此文件用于中间输出。也就是说,我将输出保存为ddd in.
F:/saikiran
中已经存在的文件。稍后,我调用与
ds=gdal.Open(intermediate_file)
中输入相同的文件“ddd”。因为它已经在上面的cmd中创建。它似乎是
gdal.Open(中间\u文件)
看不到此文件。如果您使用
cmd=“gpt…”
创建它,则它可能不存在,因为
cmd
不正确-它不使用变量
中间\u文件
中的值,而是使用文字
“中间\u文件”
作为文件名。您的磁盘上是否有文件/文件夹
F:/saikiran/ddd
?您的
cmd
不正确。若要将字符串与变量
cmd=“…-Psource=“+input_file+”-Ptarget=“+intermediate_file
中的值连接起来,请使用字符串格式
cmd=“…-Psource={}-Ptarget={}”。格式(input_file,intermediate_file)
在Python 3.7或3.6中,您可以使用f-string
cmd=f“…-Psource={input_file}-Ptarget={intermediate_file}”
f:/saikiran/ddd
我为中间输出提供了这个选项。也就是说,我将输出保存为ddd in.
f:/saikiran
,它已经存在。稍后,我将同一个文件称为“ddd”作为
ds=gdal.Open(intermediate\u file)
中的输入。由于它已在上述cmd中创建。因此
gdal.Open(intermediate\u file)
似乎看不到此文件。如果使用
cmd=“gpt…”创建它
则它可能不存在,因为
cmd
不正确-它不使用变量
intermediate\u file
中的值,而是使用文字
“intermediate\u file”
作为文件名。