Ri: leggere e salvare un file txt da una sottodirectory di un file ZIPHo aggiunto un esempio di una cartella zip qui come esempio. Di seguito è riportato il messaggio di errore
dirlist = {"test/12.txt", "test/hello.txt", "test/me/", "test/me/test.txt", "test/test/", "test/test/mytxtfile. testo"};
Problema IO: "mytxtfile" Impossibile aprire in modalità ReadWrite.
Il sistema non può trovare il percorso specificato.
Ri: leggere e salvare un file txt da una sottodirectory di un file ZIPNon ho (ancora) verificato dove il tuo script va storto, ma esiste una versione che dovrebbe salvare il file txt (richiede JMP16+ a causa di For Each() e Filter Each())
Names Default To Here(1);
file_of_interest = "mytxtfile.txt";
zip_path = "$DOWNLOADS\test.zip";
save_path = "$DOWNLOADS\586819.txt";
za = Open(zip_path, "zip");
members_in_zip = za << dir;
// take only .txt files
file_paths_of_interest = Filter Each({members}, members_in_zip,
Ends With(members, file_of_interest);
);
If(N Items(file_paths_of_interest) == 0,
Throw("Not found");
);
// Assume that only one of those files exist
file_path_of_interest = file_paths_of_interest[1];
data = za << read(file_path_of_interest, Format("string"));
Save Text File(save_path, data);
//Open(save_path);

Ri: leggere e salvare un file txt da una sottodirectory di un file ZIPLa cosa da sapere sui file zip: in realtà non hanno una struttura di directory gerarchica nidificata. La directory di un file zip è solo un semplice elenco di nomi di stringhe di caratteri. Quei nomi potrebbero contenere / o \ caratteri e alcuni visualizzatori di file zip potrebbero provare a rappresentarlo come un nido gerarchico. Quindi, il membro del file zip che ha un nome che contiene mytextfile contiene anche / caratteri nel nome e quando viene costruito questo percorso
save text file(path1 || lst[k] || "_" || dirlist[l] , text);
dirlist contiene "test/test/mytextfile.txt" e il percorso risultante dalla concatenazione probabilmente non esiste sul tuo computer.
Le funzioni word() o words() potrebbero essere utili per separare le parti del percorso.
leggere e salvare un file txt da una sottodirectory di un file ZIPCIAO,
Qualcuno può aiutare. Ne ho provati molti e ancora fallisco.
Ho provato a scorrere un elenco di cartelle zip per cercare di trovare un file txt specifico che si trova in una sottodirectory della cartella zip. quando ottengo l'elenco dei file nella cartella zip, ho visto il file txt come subdirector/mytxtfile_123.log. Di seguito è riportato il mio script, ma non riesce a scaricare il file txt. c'è un problema di IO in cui si lamenta "il sistema non riesce a trovare il percorso specificato". Mi chiedo se il capovolto da "\" a "/" quando ottengo il filelist. C'è un modo accurato per ottenere il file nella sottodirectory o in una zip?
path == path where all zip folder located;
path1 == path where txt file going to save;
lst = {the list of the zip folders};
for (k=1, k <=N items(lst), k++,
Try(
za = open(path||lst[k], zip);
dirlist = za << dir;
for (l=1, l<=N Items(dirlist), l++,
If (Contains(dirlist[l], "mytxtfile_"),
text = za << read(dirlist[l]);
save text file(path1||lst[k]||"_"||dirlist[l],text);
);
)
,
print (lst[k] || "fail to open");
Throw();
);
);Qualità e ingegneria di processo