Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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/4/kotlin/3.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
自动将TXT保存为CSV Python_Python_Pandas_Numpy_Tkinter_Geopandas - Fatal编程技术网

自动将TXT保存为CSV Python

自动将TXT保存为CSV Python,python,pandas,numpy,tkinter,geopandas,Python,Pandas,Numpy,Tkinter,Geopandas,我感兴趣的是剪切数据集,然后按照名称模式自动保存数据集(例如:block1.csv、block2.csv…) 现在我正在手动操作,我的代码是: import csv import tkinter as tk from tkinter import filedialog import numpy as np import pandas as pd import geopandas as gpd from geopandas import GeoSeries from shapely.geomet

我感兴趣的是剪切数据集,然后按照名称模式自动保存数据集(例如:block1.csv、block2.csv…) 现在我正在手动操作,我的代码是:

import csv 
import tkinter as tk
from tkinter import filedialog
import numpy as np
import pandas as pd
import geopandas as gpd
from geopandas import GeoSeries
from shapely.geometry import Polygon
from shapely.geometry import Point 

    
    
root= tk.Tk()

canvas1 = tk.Canvas(root, width = 400, height = 400, bg = 'gray1', relief = 'raised')
canvas1.pack()
#--------------START---IMPORT-------------------
def getCSV ():
    global df
    
    import_file_path = filedialog.askopenfilename()
    df = np.genfromtxt(import_file_path, delimiter='_', missing_values = ' ', filling_values = None)
    
    print (df)
    
browseButton_CSV = tk.Button(text=" Import CSV File to clip ", command=getCSV, bg='OrangeRed4', fg='black', font=('helvetica', 12, 'bold'))
canvas1.create_window(200, 200, window=browseButton_CSV)

root.mainloop()


#--------------END---IMPORT------------------------------------

x, y, z, mag = df[:,0], df[:,1], df[:,2], df[:,3]


xmin, ymin = np.min(x), np.min(y)
xmax, ymax = np.max(x), np.max(y)
dtSeries = GeoSeries(map(Point, zip(x,y,z,mag)))


def clipping( x, y, z, mag, xc, yc):
    
    df1 = pd.DataFrame({'X':x, 'Y':y, 'Z':z, 'MAG':mag})
    df1['geometry'] = list(zip(df1['X'], df1['Y'], df1['Z']))
    df1['geometry'] = df1['geometry'].apply(Point)
    gdfMAGN = gpd.GeoDataFrame(df1, geometry='geometry')
    
    x1, y1 = xc, yc
    # ____________[90000m X 90000m] IS THE WINDOW DIMENSIONS______________
    
    clipAr = Polygon([ (x1, y1), (x1, y1+90000), (x1 + 90000, y1 + 90000), (x1+90000, y1)])
    pol = gpd.GeoDataFrame([1], geometry=[clipAr] )
    
    res = gpd.clip(gdfMAGN, pol)
    resCSV = np.array([res['X'],res['Y'],res['Z'],res['MAG']]).T
    
    
    #---------------------START---SAVE---------------------
    root= tk.Tk()

    canvas1 = tk.Canvas(root, width = 300, height = 300, bg = 'gray1', relief = 'raised')
    canvas1.pack()

    def saveCSV ():
        global df
    
        export_file_path = filedialog.asksaveasfilename( defaultextension=".csv", filetypes=[("CSV files", '*.csv')])
        np.savetxt(export_file_path, resCSV, delimiter='_')
    
    
    browseButton_CSV = tk.Button(text="      Export filled CSV Data File     ", command=saveCSV, bg='OrangeRed4', fg='black', font=('helvetica', 12, 'bold'))
    canvas1.create_window(150, 150, window=browseButton_CSV)

    root.mainloop()
    #------------------------END---SAVE--------------------
    
xc, yc = np.min(x), np.min(y)

while True:
#---------45000m IS THE STEP -----------------------
    if xc = np.max(x):
        if yc = np.max(y):
            clipping(x, y, z, mag, xc, yc)
            break
        else:
            xc = xmin 
            yc = yc + 45000
    else:
        clipping(x, y, z, mag, xc, yc)
        xc = xc + 45000



为了使用我演示的模式名称自动保存结果,我添加了以下代码行并删除了saveCSV()。我只保留了np.savetxt(..)。使用它们,我得到一个路径作为输入,从中删除最后一部分,然后得到文件路径

 #-------------------START---------GET   PATH---------------------------
root= tk.Tk()

canvas1 = tk.Canvas(root, width = 300, height = 300, bg = 'gray1', relief = 'raised')
canvas1.pack()

def getPath ():
    global path
    
    path = filedialog.asksaveasfilename( defaultextension=".txt", filetypes=[("TXT files", '*.txt')])
    
    print(path)
        
    
browseButton_CSV = tk.Button(text="      Set PATH     ", command=getPath, bg='OrangeRed4', fg='black', font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 150, window=browseButton_CSV)

root.mainloop()

#--------------------END-------GET   PATH---------------------------------------------

print(path)
strin = np.array([])
for i in path:
    strin=np.append(strin, i)
ind = np.where(strin=="/" )

j = str()
for i in path[0:(ind[0][len(ind[0])-1]+1)]:
    j += i
path  = j

print(path)
我还在clipping()中添加了2个额外的变量path和block以及下面的代码行,以创建每个csv的路径和名称

pathBlock = path + 'block' + str(bl) + '.csv'
np.savetxt(pathBlock, resCSV, delimiter='_')

我想用一个名字模式自动保存结果,就像我说的,你可能不明白。。。我询问是否有人知道自动保存csv的方法。我没有收到任何错误,因为我使用tkinter和numpy.savetxt手动保存数据集{请参阅我上传的代码}。我没有任何代码试图自动保存,因为我不知道怎么做