无法使用python中的用户界面将输入和输出的位置传递给extnal命令
我对python完全陌生 我试图使用用户界面传递输入和输出的位置,如本次讨论[1]所示: 但在这里,我调用了一个外部命令,并试图通过传递输入和输出的位置从python代码中运行它,就像上面提到的情况一样无法使用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
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-stringcmd 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-stringcmd=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”
作为文件名。