Как взять все файлы из папки в качестве входных данных (по одному за раз) и сохранить их в другую папку после обработки? (с помощью powershell)

#python #powershell

Вопрос:

У меня есть .py сценарий, который берет по одному .csv за раз и предварительно обрабатывает его. Я выполняю команду таким образом в PowerShell:

python3 cleaning_script.py file1.csv results_file1.csv . Это работает совершенно нормально. В папке более 300 файлов, которые я должен предварительно обработать, есть ли лучший способ (возможно, цикл, но я не знаю, как использовать цикл в этой среде), в котором я могу упомянуть папку, и каждый файл берется в качестве входных данных из исходной папки, а предварительно обработанные файлы сохраняются в папке назначения?

Из-за неадминистративных прав в системе (Windows 10) я использую PowerShell для выполнения команд.

Комментарии:

1. Я не хотел повторять вопрос; достаточно было просто изменить теги предыдущего. Кроме того, из документа терминала RStudio: The RStudio terminal provides access to the system shell from within the RStudio IDE ; это означает, что он использует собственный терминал операционной системы. Я не уверен, что в Windows это PowerShell, это также может быть DOS.

2. А, ладно. Спасибо. Я думаю, что нашел решение, благодаря вашему предложению я посмотрел его для Powershell, узнал, как оно работает, и оно работает нормально. Должен ли я удалить этот вопрос или опубликовать свой ответ здесь?

3. Рад, что вы решили свою проблему. Я не уверен в том, что тебе следует делать дальше. Вопрос PowerShell несколько тривиален, но интересно знать, что RStudio использует PowerShell в Windows (вместо DOS).

4. В любом случае, спасибо вам за то, что выявили мою основную проблему, проделали некоторую работу и решили ее 🙂

5. Вы можете получить «массив файлов» с помощью Get-ChildItem (сокращенно: gci). Это вы можете передать по каналу и пройтись по нему с помощью объекта foreach. Это было бы что-то вроде Get-ChildItem foldername | Foreach-Object {script.py $_ } более эффективного сохранения выходных данных gci в переменной ( $vars = Get-ChildItem foldername ), а затем использования Foreach для их перебора. foreach ($var in $vars) {script.py $var} . Если я правильно понял ваш вопрос, то есть…