最初の関数でnewFolderを返そうとしましたので、2番目の関数で を使用できます。 2番目の関数が呼び出されると、newFolder変数のみを使用するのではなく、最初の関数全体をループし続けます。グローバルを使用している場合や関数外でnewPathを定義している場合は正常に動作します。私はちょうど知りたい機能内で動作するように操作する方法があるか?differentnent関数から変数を呼び出すにはどうすればよいですか?
import os
import shutil
directory = input("Enter the desired directory: ")
def dir_list():
os.chdir(directory)
subFiles = os.listdir()
return subFiles
def creating_dir():
newPath = input("Enter Folder name: ")
newFolder = (directory+'/'+newPath)
if not os.path.exists(newFolder):
os.makedirs(newFolder)
return newFolder
def moving_files():
for file in dir_list():
if file.endswith('.gif'):
shutil.move(file, creating_dir())
else:
break
def main():
dir_list()
creating_dir()
moving_files()
if __name__ == "__main__":
main()
私は完全にプログラミングに新しいので、私の説明がビットnoobie場合私を許しています。 – Frozen
値を返すこととパラメータを渡すことについて読むことをお勧めします。これらは機能に関する非常に重要な概念です。特に、関数の返された結果を取得する方法を学ぶ必要があります。関数に関するすべてのPythonチュートリアルでは、これを行う方法を説明します。 –
あなたの関数の戻り値を 'moving_files()'に渡します。これは正しい方法です –