#python #pandas #windows #csv #jupyter
#питон #панды #Windows #csv #юпитер
Вопрос:
Я пытаюсь перебрать папку с файлами csv, но меня останавливает ошибка разрешения, странно то, что папка должна быть доступна, так как я вошел в систему под учетной записью администратора на своей машине с Windows 10, и файлы находятся в новой папке с установленным уровнем безопасности для чтения и записи. Я боюсь, что это какая-то глупая проблема с разрешением окна, которую я потратил много часов, пытаясь решить эту проблему :).
import pandas as pd import os raw_data_path = 'C:\Users\jeppe\data\' filenames = os.listdir(raw_data_path) for file in filenames: df = pd.read_csv(f'{raw_data_path}{file}') ..append some code PermissionError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_12388/436724791.py in lt;modulegt; ----gt; 1 pd.read_csv(Path(f'{raw_data_path}{file}')) ~anaconda3libsite-packagespandasutil_decorators.py in wrapper(*args, **kwargs) 309 stacklevel=stacklevel, 310 ) --gt; 311 return func(*args, **kwargs) 312 313 return wrapper ~anaconda3libsite-packagespandasioparsersreaders.py in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options) 584 kwds.update(kwds_defaults) 585 --gt; 586 return _read(filepath_or_buffer, kwds) 587 588 ~anaconda3libsite-packagespandasioparsersreaders.py in _read(filepath_or_buffer, kwds) 480 481 # Create the parser. --gt; 482 parser = TextFileReader(filepath_or_buffer, **kwds) 483 484 if chunksize or iterator: ~anaconda3libsite-packagespandasioparsersreaders.py in __init__(self, f, engine, **kwds) 809 self.options["has_index_names"] = kwds["has_index_names"] 810 --gt; 811 self._engine = self._make_engine(self.engine) 812 813 def close(self): ~anaconda3libsite-packagespandasioparsersreaders.py in _make_engine(self, engine) 1038 ) 1039 # error: Too many arguments for "ParserBase" -gt; 1040 return mapping[engine](self.f, **self.options) # type: ignore[call-arg] 1041 1042 def _failover_to_python(self): ~anaconda3libsite-packagespandasioparsersc_parser_wrapper.py in __init__(self, src, **kwds) 49 50 # open handles ---gt; 51 self._open_handles(src, kwds) 52 assert self.handles is not None 53 ~anaconda3libsite-packagespandasioparsersbase_parser.py in _open_handles(self, src, kwds) 220 Let the readers open IOHandles after they are done with their potential raises. 221 """ --gt; 222 self.handles = get_handle( 223 src, 224 "r", ~anaconda3libsite-packagespandasiocommon.py in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options) 700 if ioargs.encoding and "b" not in ioargs.mode: 701 # Encoding --gt; 702 handle = open( 703 handle, 704 ioargs.mode, PermissionError: [Errno 13] Permission denied: 'C:\Users\jeppe\bot\data\.ipynb_checkpoints' [1]: https://i.stack.imgur.com/6a3q0.png
Комментарии:
1. это может быть просто тот конкретный файл, у которого есть проблема с разрешениями. Похоже на какой-то конфигурационный файл, связанный с jupyter. Вы можете попробовать отфильтровать то, что вы на самом деле читаете, например, избегать файлов, начинающихся с».», и посмотреть, поможет ли это
2. вы знаете, что это был мой первый пост о переполнении стека! и было так полезно взглянуть на это свежим взглядом! Большое спасибо, я отфильтровал все файлы, начинающиеся с точки, и это сработало!
3. Из любопытства, вы пробовали переместить папку .csv в ту же папку, что и ваша записная книжка Jupyer ? файл ipynb, обновление/перезагрузка ядра и имя папки напрямую ?
4. нет, не пробовал этого
Ответ №1:
Необходимо исключить файл .ipynb_checkpoints, это можно сделать с помощью этого простого цикла for
for file in filenames: if not file.startswith("."): df = pd.read_csv(f'{raw_data_path}{file}')