質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

4426閲覧

os.makedirsを使ってフォルダを作成したいが、NotADirectoryError: [WinError 267] ディレクトリ名が無効ですとなる。

gagao

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/08/25 00:41

前提

windowsで制作
pythonを使って、デスクトップ上にあるファイルとフォルダをすべて別のフォルダに移動するプログラムを制作している。
仕様として、移動先のフォルダは今日の日付をフォルダ名とするフォルダを作成し移動したい。

実現したいこと

  1. os.makedirsを使ってpathfinで示しているフォルダを正常に作成したい

発生している問題・エラーメッセージ

NotADirectoryError: [WinError 267] ディレクトリ名が無効です。: 'd:./Desktop_trash/2022:08-25'

該当のソースコード

python

1#デスクトップ上のフォルダとファイルの有無をチェック 2import shutil 3import os 4import datetime 5from time import strftime 6 7#デスクトップのパス 8path = 'c:./Users/?????/Desktop' #???は各自で変更してください 9#移動先のフォルダのパス 10path2 = 'd:./Desktop_trash' 11 12#デスクトップ上の要素をリストとして受け取る 13files = os.listdir(path) 14files.sort() 15#確認用 16print(files) 17 18#リストの長さを受け取る 19listsize = len(files) 20#確認用 21print(listsize) 22 23#listsizeが1以上の処理 24if listsize > 0: 25 #日付の取得 26 today = datetime.date.today() 27 today = today.strftime('%Y:%m-%d') 28 #確認用 29 print(today) 30 #パスの結合 31 pathfin = path2 + '/' + today 32 #確認 33 print(pathfin) 34 #フォルダの作成 35 os.makedirs(pathfin ,exist_ok=True)

試したこと

  1. パスの書き方を変えた
  2. os.mkdirでのフォルダ作成を試してみた

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2022/08/25 00:47

> path = 'c:./Users/?????/Desktop' #???は各自で変更してください > path2 = 'd:./Desktop_trash' : の次の . はどういう意図でしょうか。
guest

回答2

0

os.makedirsを使ってpathfinで示しているフォルダを正常に作成したい

不可能です。Windowsでは、:をファイル名・フォルダ名に使えません(参考)。

投稿2022/08/25 00:48

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

日付文字列2022:08-25の中の:はパス名として使えません。-なりに置き換えてください。

なおc:./~Cドライブのカレントディレクトリを基点としたパスとなり、実行環境によっては意図しない場所を指す可能性があるので注意ください。
参考:完全修飾パスと相対パス

修正前の回答

d:./~という先頭部分がパス名として無効です。d:/~としてください。
c:./Users~も同様です。

投稿2022/08/25 00:53

編集2022/08/25 02:18
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問