Я пытаюсь написать быстрый скрипт Python для перебора всех файлов csv в текущей папке и удаления из них строки заголовка, а затем сохранения их в отдельной папке.
Текущий рабочий каталог содержит четыре примера CSV-файлов и скрипт Python. После выполнения скрипт создает каталог HeaderRemoved.
Похоже, что после создания папки код, который пытается прочитать файлы, пытается получить доступ к папке, но, глядя на код, я не уверен, почему это должно быть.
В данный момент я на машине с Windows.
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)
не находится внутри твоего блокаfor csvFile in os.listdir('.'):
? Это означает, что вы открываете только последний файл, рассмотренный цикломfor
, независимо от того, имел ли этот файл расширение.csv
или нет. - person Charles Duffy   schedule 06.12.2016HeaderRemoved
, вероятно, является последним файлом, возвращеннымos.listdir
, и вы пытаетесь открыть и удалить из нее заголовок только, который нельзя открыть как файл CSV (это это папка). Отсюда и ошибкаPermission Denied
. - person musically_ut   schedule 06.12.2016