Python, пытаясь записать CSV файл в определенное место.

62
6

Я пытаюсь написать файл в определенном месте, для этого я написал следующий код.

Программа находится в папке на внешнем жестком диске. Я использовал os.path для получения текущего пути (я думаю..)

"fileName" var is = hello "savePath" var is = data

Когда я запускаю код, я получаю следующую ошибку...

IOError: [Errno 13] Разрешение отклонено: 'data\hello_23-04-2014_13-37-55.csv'

Нужно ли устанавливать разрешения для файла, прежде чем я попытаюсь написать ему? Если да... как вы это делаете?

def writeData(fileName, savePath, data):
# Create a filename
thisdate = time.strftime("%d-%m-%Y")
thistime = time.strftime("%H-%M-%S")
name = fileName + "_" + thisdate + "_" + thistime + ".csv"

# Create the complete filename including the absolute path
completeName = os.path.join(savePath, name)

# Check if directory exists
if not os.path.exists(completeName):
os.makedirs(completeName)

# Write the data to a file
theFile = open(completeName, 'wb')
writer = csv.writer(theFile, quoting=csv.QUOTE_ALL)
writer.writerows(data)

спросил(а) 2021-01-19T17:14:27+03:00 2 месяца, 3 недели назад
1
Решение
75

Я получаю другую ошибку (исключая вопросы разрешения), когда я пытаюсь урезать версию того, что вы здесь делаете:

>>> import os
>>> path = "foo/bar/file.txt"
>>> os.makedirs(path)
>>> with open(path, "w") as f:
... f.write("HOWDY!")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 21] Is a directory: 'foo/bar/file.txt'

Обратите внимание, что когда вы это делаете:

# Check if directory exists
if not os.path.exists(completeName):
os.makedirs(completeName)

... вы создаете каталог, у которого есть имя, которое и путь, который вы хотите (хороший), и имя файла, который вы пытаетесь создать. Передайте путь только makedirs() а затем создайте файл внутри этого каталога, когда вы это сделали.

ответил(а) 2021-01-19T17:14:27+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема