Python Не Записывает В Последний Файл?

#python #function #glob #write

Вопрос:

Я создал функцию, которая принимает имя файла, то, что нужно написать, и местоположение из удовольствия, и поэтому я мог сделать свой код более чистым. Но моя проблема в том, что он не будет записываться в последний файл. Я могу удалить путь 6, и он не будет писать в путь 5, если это последний, так что это говорит мне, что у меня ошибка, но я не могу ее понять. Может ли кто-нибудь указать мне правильное направление? Спасибо, вот мой код

 import os
import glob

"""
Function takes in filename, userInput and folder location
then write to the selected file. Also changes directory to mainDir
"""
def writeto(filewrite, userInput, location):
    filewrite = open("_Script.bat", "w",)
    filewrite.write(userInput)
    print("Writing settings to file: "   location   fileName)
    filewrite.close()
    os.chdir(mainDir)
    os.chdir(location)

print("nCurrent Directory is : "   os.getcwd())

fileName = "__Script.bat"
path = 'C:/Users/Admin/MyDocs/Logs and Sheets 1'
path2 = 'C:/Users/Admin/MyDocs/Logs and Sheets 2'
path3 = 'C:/Users/Admin/MyDocs/Logs and Sheets 3'
path4 = 'C:/Users/Admin/MyDocs/Logs and Sheets 4'
path5 = 'C:/Users/Admin/MyDocs/Logs and Sheets 5'
path6 = 'C:/Users/Admin/MyDocs/Logs and Sheets 6'
mainDir = os.getcwd()
os.chdir(path)

settingsinput = input("nPlease enter your input: ")


writeto(fileName, userInput, path)
writeto(fileName, userInput, path2)
writeto(fileName, userInput, path3)
writeto(fileName, userInput, path4)
writeto(fileName, userInput, path5)
writeto(fileName, userInput, path6)
 

Комментарии:

1. Вы переходите в каталог после открытия и записи файла — поэтому первый файл попадает в какой-то неизвестный каталог, а в последний каталог никогда не записывается файл.

2. Спасибо, я знал, что это будет что-то простое. Я подумал о смене каталога, но не мог обмозговать это. Спасибо!

3. На самом деле вам вообще не нужно менять каталоги здесь. Ты можешь это сделать open(location "/_Script.bat", "w") .

4. Попробуйте добавить файловую запись. промыть() перед filewrite.close().

5. @Богдан, почему? close() выполняет сброс.