У меня есть функция Python для записи текстового файла в новую или существующую папку. Проблема в том, что я впервые запускаю функцию, когда папка не существует, я получаю TypeError: Object типа «NoneType» не имеет len(). Во второй раз, когда я запускаю его, после создания папки он работает нормально.Запись в новую или существующую папку
import os
def save_string_to_folder(new_folder, string):
folder_path = 'C:\Users\e6082493\Documents\Improve\Python\Scraping\Folder_%s' % (new_folder)
if not os.path.exists(folder_path):
folder_path = os.makedirs(folder_path)
join_path = os.path.join(folder_path, string)
join_path_finish = open(join_path, "w")
join_path_finish.close()
save_string_to_folder('new', 'TextFile.txt')
Я бы подумал, что моя инструкция «if» будет исправлена для этой ошибки. Кажется, я не могу понять, что мне не хватает. Благодарю.
Вот отслеживающий:
Traceback (most recent call last):
File "new_2.py", line 12, in <module>
save_string_to_folder('new', 'TextFile.txt')
File "new_2.py", line 7, in save_string_to_folder
join_path = os.path.join(folder_path, string)
File "C:\Python27\lib\ntpath.py", line 65, in join
result_drive, result_path = splitdrive(path)
File "C:\Python27\lib\ntpath.py", line 115, in splitdrive
if len(p) > 1:
TypeError: object of type 'NoneType' has no len()
PS C:\Users\e6082493\Documents\ImproveBKFS\Python\Scraping>
Пожалуйста, измените вопрос, чтобы включить отслеживающий – roganjosh
Я вижу, что вы говорят, но я не верю, что есть модуль под названием .makedir(), может быть, в другой библиотеке, о которой я не знаю? – Mwspencer
Нет, обе части 'os'. Проверьте [документацию] (https://docs.python.org/2/library/os.html). Существует два метода; 'makedir' и' makedirs'. Вы используете множественное число. Я просто не уверен в части 'NoneType', поэтому я спрашиваю о трассировке стека, а не только одной строкой. – roganjosh