Ваша функция не использует аргумент profileFolder
, где вы указываете имя выходного каталога. Поэтому прежде всего вам следует использовать эту информацию для создания папки перед обработкой ваших файлов.
Итак, первым делом нужно создать этот выходной каталог.
Во-вторых, сохранить ваши файлы там, и для этого вам нужно добавить имя файла в выходной каталог. Примерно так:
def make_profiles(data_folder, output_folder, size):
filelist = []
for file in os.listdir(data_folder):
filelist.append(file)
# Create output folder
if not os.path.exists(output_folder):
os.mkdir(output_folder)
for file in filelist:
filen = "./training/"+file
#print("fi", filen)
splitname = str(file).split('-')
# Create new file by appending name to output_folder
newname = os.path.join(output_folder, splitname[0] + "." + str(size) + '.txt')
return (endtable)
make_profiles(./training, './trigram-models', 20)
Обратите внимание, что вы также можете указать относительное имя папки (т.е. только "trigram-models") и затем создать выходной каталог, добавив это имя к текущему пути:
output_folder = os.path.join(os.getcwd(), output_folder)
Также (не связанный с вопросом) этот фрагмент кода может быть оптимизирован:
filelist = []
for file in os.listdir(data_folder):
filelist.append(file)
os.listdir
уже возвращает список, поэтому вы можете написать:
filelist = os.listdir(data_folder)
Но поскольку вас интересует абсолютный путь к каждому файлу, лучше сделать:
filelist = [os.path.abspath(f) for f in os.listdir(data_folder)]
, где вы в основном берете каждый файл, возвращаемый os.listdir
, и добавляете его абсолютный путь к списку файлов. Делая это, вы можете избежать линии filen = "./training/"+file
.
В итоге ваш код должен выглядеть примерно так:
def make_profiles(data_folder, output_folder, size):
filelist = [os.abspath(f) for f in os.listdir(data_folder)]
# Create output folder
if not os.path.exists(output_folder):
os.mkdir(output_folder)
for file in filelist:
splitname = str(file).split('-')
# [...add other pieces of code]
# Create new file by appending name to output_folder
newname = os.path.join(output_folder, splitname[0] + "." + str(size) + '.txt')
# [...add other pieces of code]
return (endtable)
make_profiles(./training, './trigram-models', 20)