Попробуйте использовать библиотеку pathlib. Он должен позаботиться о форматировании для вас. Предполагая, что папка с файлом находится где-то в вашем собственном домашнем каталоге, этот код должен выполнить свою задачу:
import os
from pathlib import Path
generator = Path.home().glob('**/US_Accidents_Dec19.csv')
wd = list(generator)[0]
os.chdir(wd)
Библиотека pathlib может работать с путями, независимыми от вашей операционной системы. Path.home()
находит ваш каталог пользователя, например '\ Users \ MyAccount' или 'C: \ Users \ MyAccount'.
Функция glob()
может найти файлы на основе шаблонов для вас. **/
означает поиск по всем подпапкам.
Если вы хотите искать не только каталог ваших пользователей, но и все каталоги пользователей, просто выполните Path.home().parent.glob('**/US_Accidents_Dec19.csv')
Если файл, который вы ищете, может найти в той же папке или в подпапках, относящихся к вашему сценарию, попробуйте использовать Path(__file__).resolve()
, чтобы получить полный путь к вашему файлу, а затем используйте glob для этого.
generator = Path(__file__).resolve().glob('**/US_Accidents_Dec19.csv')
wd = list(generator)[0]
os.chdir(wd)
Функция glob()
возвращает генератор объекта. Объект генератора может быть превращен в список с помощью list(obj)
, или вы можете перебрать его с помощью for-l oop, как если бы это был список.