Я пытаюсь написать быстрый скрипт python для итерации всех файлов csv в текущей папке и удаления из них строки заголовка, а затем сохранить их в отдельной папке.Python [Errno 13] Permission denied:
В текущем рабочем каталоге есть четыре примера csv-файлов и сценарий python. После выполнения сценария создается каталог HeaderRemoved.
Похоже, что после создания папки код, пытающийся прочитать файлы, пытается получить доступ к папке, но, глядя на код, я не уверен, почему это было бы.
Я нахожусь на машине для окон в данный момент. Выход
import csv, os, argparse, string
from ctypes import *
os.makedirs('HeaderRemoved', exist_ok=True)
# Loop through files in the current working directory
for csvFile in os.listdir('.'):
if not csvFile.endswith('.csv'):
continue # Skips non-csv files
print ('Removing header from ' + csvFile + '...')
# Read in CSV skipping the first row
csvRows = []
csvFileObj = open(csvFile)
csvReader = csv.reader(csvFileObj)
for row in csvReader:
if csvReader.line_num == 1:
continue # Skips the first row
csvRows.append(row)
csvFileObj.close()
# Write out the CSV file
csvFileObj = open (os.path.join('HeaderRemoved', csvFile), 'w', newline='')
for row in csvRows:
csvWriter.writerow(row)
csvFileObj.close()
Пример:
Removing header from examplefile_1.csv...
Removing header from examplefile_2.csv...
Removing header from examplefile_3.csv...
Removing header from examplefile_4.csv...
Traceback (most recent call last): File "atbs_csv_parse.py", line 14, in <module>
csvFileObj = open(csvFile) PermissionError: [Errno 13] Permission denied: 'HeaderRemoved'
Обратите особое внимание на отступы. Посмотрите, как ваш 'csvFileObj = open (csvFile)' не находится внутри вашего 'для csvFile в os.listdir ('.'):' Block? Это означает, что вы открываете только * последний * файл, который рассматривался в цикле 'for', независимо от того, имел ли этот файл расширение« .csv »или не было. –
Это проблема с отступом: папка 'HeaderRemoved', вероятно, является последним файлом, возвращаемым' os.listdir', и вы пытаетесь открыть и удалить из него заголовок _only_, который не может быть открыт как CSV-файл (он это папка). Следовательно, ошибка «Разрешение отказа». –