Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Kod pythona na PHP
Forum PHP.pl > Forum > Przedszkole
ryby007
Witam.
Wiem że jestem świeży i cep ale potrzebuje waszej pomocy do przerobienia kodu z pythona na PHP, zależy mi by skrypt był wykonywalny ze strony przeglądarki.
Czyli wysłać plik(.txt .nc) na serwer i tam przerobiony na kilka mniejszych
Kod
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import sys
import os
import re
import Tkinter as tk
import tkMessageBox
import os.path
import datetime
import tkFileDialog

tk.Tk().withdraw()
backup = tkFileDialog.askopenfilename (filetypes = [('NC files', '.nc'), ('text files', '.txt')], title = '! Wybierz plik do przetworzenia !')

if os.path.isfile( backup ):
    # stworzenie katalogu
tk.Tk().withdraw()
HAASCNC = tkFileDialog.askdirectory (initialdir = '/home', title = '! Wybierz folder do zapisu wszystkich programów !')
if os.path.isdir( HAASCNC ):

    if not os.path.isdir(HAASCNC):
        os.mkdir(HAASCNC)

    # otworzenie pliku do zapisu listy stworzonych plikow
    file_list = open( HAASCNC + '/listprog.txt', 'w')
    file_list.write('%\nO00000(LIST-PROG)\n')

    # pliku do zapisu danych. na poczatek None aby pominac linie przed pierwszym O[0-9]{5}
    file_out = None

    with open(backup, 'r') as file_in:
        for line in file_in:

            line = line.rstrip('\n')
    
            # sprawdzenie czy linia zawiera nazwe pliku O[0-9]{5}
            if re.match('^O[0-9]{5}.*', line):
    
                # zamiana pewnych znakow
                line = line.replace('/',' ').replace(' ','')

                # zamkniecie poprzednio otwartego pliku (jesli nie jest None)
                if file_out:
                    # dodanie koncowej linii z %
                    file_out.write('%\n')
                    file_out.close()

                print  line

                # otwarcie/stworzenie nowego pliku
                file_out = open(os.path.join(HAASCNC, line), 'w')

                    # dodanie poczatkowej linii z %
                file_out.write('%\n')

                # zapisujemy nazwe do pliku z nazwami plikow !
                file_list.write( '/' + line + '\n')

            # zapisanie linii jesli zostal juz utworzony plik
            if file_out:
                if not line:
                    line = ''
                file_out.write(line + '\n')

        # zamykniecie ostatniego tworzonego plik            
    if file_out:
        file_out.write('%\n')
        file_list.write('%\n')
    # zamykniecie pliku z lista stworzonych plikow
    file_list.close()

        msg = u'Wszystkie pliki zostały wyodrębnione.\nZnajdujš się w katalogu:\n' + HAASCNC + u'\n\nLista programów znajduje się w pliku:\n' + HAASCNC + u'/listprog.txt'
else:
        msg = u'Nie wybrano katalogu do zapisu'
else:
        msg = u'Nie wybrano pliku *.nc lub *.txt'

tk.Tk().withdraw()
tkMessageBox.showwarning("HAASCNC", msg )


Pozdrawiam i liczę na pomoc
Dubler
możesz włączyć skrypt w php za pomocą shell_exec i echować sobie to co zwróci ta funkcja wink.gif
mar1aczi
Bądź: https://docs.python.org/2/howto/webservers.html
zielu001
Prosił wyraźnie o przerobienie na PHP, a nie drogę na skróty.
Jest taka nie pisana zasada, jeśli się gówno wie to się nie odpowiada.


Jeśli poczekasz chwile to ci napiszę skrypt w php tongue.gif jakieś 5min bo nie chce mi sie tłumaczyć

PS: Przepraszam że post pod postem, ale masz : http://pastebin.com/ccDjetT3
ryby007
Witam ponownie.
Coś mi nie wychodzi bo nie znam się na PHP a pythona to tylko można powiedzieć "liznąłem".
Nie wiem jak to zrobić by wołało o plik przez okienko wyboru pliku i na końcu trzeba podać gdzie ma być zapisany przez okienko.

Zależy mi na tym by z poziomu smartfona/komputera wysłać przez przeglądarkę plik tekstowy który zostanie przerobiony przez ten skrypt na mniejsze pliki tekstowe.
Na koniec wybrać folder na telefonie/komputerze gdzie mają być pobrane pliki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.