Jako część większego zadania wykonywanego w R uruchomionym pod oknami, chciałbym skopiować wybrane pliki między katalogami. Czy jest możliwe podanie w ramach polecenia R jak cp patha/filea*.csv pathb
(zwróć uwagę na wieloznacznik, aby uzyskać dodatkową przyprawę)?używanie R do kopiowania plików
29
A
Odpowiedz
42
nie sądzę, nie ma reklam poprawny sposób (nieukończenie łuskania), ale coś podobnego do tych zwykle działa dla mnie.
flist <- list.files("patha", "^filea.+[.]csv$", full.names = TRUE)
file.copy(flist, "pathb")
Uwagi:
- celowo rozkłada się w dwóch etapach, mogą być łączone.
- Zobacz wyrażenie regularne: R używa prawdziwego wyrażenia regularnego, a także oddziela wzorzec pliku od ścieżki w dwóch osobnych argumentach.
- zanotuj
^
i$
(beg/end of string) w wyrażeniu regularnym - jest to typowe pojęcie, ponieważ są one niejawne dla wzorców typu wieloznacznego, ale wymagane w przypadku wyrażeń regularnych (w przeciwnym razie niektóre nazwy plików pasują do wzorca wieloznacznego; ale także zacznij i/lub zakończ z dodatkowym tekstem, który również zostanie wybrany). - W świecie Windows ludzie zazwyczaj dodają argument
ignore.case = TRUE
dolist.files
, aby naśladować fakt, że w wyszukiwaniu katalogu nie ma znaczenia wielkość liter w tym systemie operacyjnym. - Funkcja R
glob2rx()
zapewnia wygodny sposób konwertowania wzorców wieloznacznych na wyrażenia regularne. Na przykładfpattern = glob2rx('filea*.csv')
zwraca inne, ale równoważne wyrażenie regularne.
11
Można
- użycie
system()
odpalać polecenia tak, jakby to było na skorupach, włącznie globbing - korzystanie
list.files()
akadir()
zrobić globowania/reg.exp dopasowanie siebie i kopiowanie plików indywidualnie - użycie
file.copy
na pojedynczych plików, jak pokazano w odpowiedzi Murcja za
+0
nigdy nie słyszałem o 'dir'. Jest to \ "dokładnie \" identyczne z 'list.files' ... co dziwne, że oba mają – MichaelChirico
Powiązane problemy
- 1. Używanie R do analizowania plików csv Surveymonkey
- 2. Używanie programu odwzorowującego i zestawu plików do kopiowania plików do innego podkatalogu?
- 3. Metoda kopiowania wierszy R
- 4. Polecenie qmake do kopiowania plików i folderów do katalogu wyjściowego
- 5. Używanie R do wypisania wszystkich plików z określonym rozszerzeniem
- 6. Jak używać metody File.Copy C# do kopiowania plików przez LAN?
- 7. jenkins nie ma uprawnień do kopiowania plików - czy to prawda?
- 8. Używanie PowerShell do dodawania rozszerzeń do plików
- 9. Używanie libcurl do przesyłania plików do DropBox
- 10. rsync do kopiowania tylko określonych folderów
- 11. Używanie plików .pth
- 12. Android Studio - Tworzenie modułów bez kopiowania plików?
- 13. Jak wyświetlić wbudowane okno dialogowe kopiowania plików?
- 14. Tworzenie funkcji rekursywnej do kopiowania wszystkich plików i folderów
- 15. Podwójny dostęp do kopiowania plików bez usługi CredSSP
- 16. Używanie BigQuery z R do analizy danych
- 17. Używanie R równolegle do przyspieszenia bootstrap
- 18. Zmiana nazwy plików podczas kopiowania ANT
- 19. Ruby pokaż postępy podczas kopiowania plików
- 20. używanie wewnętrznej funkcji tar w R na określonych plikach
- 21. R - przechwytywanie elementy R wyjście do plików tekstowych
- 22. Używanie usługi ServiceStack do przesyłania plików obrazów
- 23. Używanie python lxml.etree do dużych plików XML
- 24. Używanie Rijndael do szyfrowania/odszyfrowywania plików
- 25. Używanie pysmbc do odczytu plików przez sambę
- 26. Używanie Twig do dynamicznych plików JavaScript
- 27. Używanie PHPExcel do automatycznego generowania plików Excela
- 28. Przesyłanie wielu plików i używanie czytnika plików do podglądu
- 29. Używanie plików cython .pxd do rozszerzania czystych plików Pythona
- 30. Jak dołączyć do plików PDF w R?
Myślę, że wzór powinien być' "^ filea. + [.] Csv" '. – Marek
@Marek: prawda jesteś! Ponadto, w szczególności w świecie Windows, peopole zazwyczaj chce dodać argument 'ignore.case = TRUE'. Odpowiednio zredagowałem, dzięki. – mjv
możesz użyć? Glob2rx do konwersji z symboli wieloznacznych do wyrażeń regularnych. –