簡體   English   中英

有人可以幫助我解決 FileNotFoundError python

[英]someone can help me with FileNotFoundError python

我正在嘗試將文件從一個文件夾復制到另一個文件夾,所以我首先創建了 2 個文件夾和子文件夾,但是當我嘗試使用 shutil.copyfile() 復制文件時出現問題,問題是當我運行此代碼時在我的文件夾路徑的末尾添加了一個斜杠(/)。 找到我的代碼。

original = 'Users\\Jonathan\\Documents\\datas'
base_direct = 'Users\\Jonathan\\Documents\\dataset'
os.mkdir(base_direct)
train_dir = os.path.join(base_direct, 'train')
os.mkdir(train_dir)
train_cats_dir = os.path.join(train_dir, 'cats')
os.mkdir(train_cats_dir)
fnames = ['cat.{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
  src = os.path.join(original, fname)
  dst = os.path.join(train_cats_dir, fname)
  shutil.copyfile(src, dst)

所以錯誤是說:

FileNotFoundError: [Errno 2] No such file or directory: 'Users\\Jonathan\\Documents\\datas/cat.0.jpg'

問題在於數據和貓之間的斜線

我正在使用谷歌 colab。

推薦:

  1. 使用絕對路徑,它應該包括一個驅動器。
  2. 使用pathlib將父文件夾創建到最終文件夾,並避免錯誤。 而不是使用os.mkdir()
  3. (可選)使用原始字符串文字,通過在路徑字符串前添加r來轉義反斜杠。 與雙反斜杠做同樣的事情,但更整潔。

完整代碼

import os
from pathlib import Path
import shutil

original = r'C:\Users\Jonathan\Documents\datas' # assuming you are using C drive
base_direct = r'C:\Users\Jonathan\Documents\dataset'

Path(base_direct).mkdir(parents=True, exist_ok=True)

train_dir = os.path.join(base_direct, 'train')
Path(train_dir).mkdir(parents=True, exist_ok=True)

train_cats_dir = os.path.join(train_dir, 'cats')
Path(train_cats_dir).mkdir(parents=True, exist_ok=True)

fnames = ['cat.{}.jpg'.format(i) for i in range(1000)]

for fname in fnames:
  src = os.path.join(original, fname)
  dst = os.path.join(train_cats_dir, fname)
  shutil.copyfile(src, dst)

我認為您需要提及驅動器名稱,例如'Z:\ Users \ Jonathan \ Documents \ datas'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM