IOError:[Errno 2]没有这样的文件或目录?

2024-10-03 13:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我试着把小麦中的220个文件移到train-unreuters文件包中,小麦中的另一个文件移到train-unreuters-test-unreuters文件包中,但是当我运行代码时,它会给我一个错误,我实际上把文件放在了正确的位置!我怎样才能解决这个问题? enter image description here

#!/usr/bin/python
#coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import os.path
import shutil
import random
path = '/home/user1/zhouchun/lda/reuters-21578/Wheat'
targetpath1 = '/home/user1/zhouchun/lda/reuters-21578/train_reuters'
targetpath2 = '/home/user1/zhouchun/lda/reuters-21578/test_reuters'
list=random.sample(range(1, 306),220)
for i in list:
    file_dir = os.path.join(path, str(i))
    # print file_dir
    shutil.move(file_dir, targetpath1)
files = os.listdir(path)
for file in files:
    # print file
    dir = os.path.join(path, file)
    if dir != file_dir:
        shutil.move(dir, targetpath2)

Tags: 文件pathimporthomeosdirsystrain
2条回答

请检查ome/user1/zhouchun/lda/reuters-21578/Wheat文件编号是否为305。在

我创建了一个函数写随机文件,代码可以参考。在

import random
import os

path = r'E:\temp\temp'

list= random.sample(range(1, 306), 220)
for i in list:
    file_dir = os.path.join(path, str(i))
    with open(file_dir, 'w') as f:
        f.write('file_dir: %s' % file_dir)
        f.close()

请注意第list= random.sample(range(1, 306), 220)行中的220。在

粘贴完成后,您可以编写代码并更改路径

^{pr2}$

比运行代码,错误信息将收入。在

Traceback (most recent call last):
  File "D:\Python_3.5\lib\shutil.py", line 544, in move
    os.rename(src, real_dst)
FileNotFoundError: [WinError 2] System can't found the file.: 'E:\\temp\\temp\\182' -> 'E:\\temp\\old\\182'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:/Python_Code/FaceDetect/123123.py", line 31, in <module>
    shutil.move(file_dir, targetpath1)
  File "D:\Python_3.5\lib\shutil.py", line 558, in move
    copy_function(src, real_dst)
  File "D:\Python_3.5\lib\shutil.py", line 257, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "D:\Python_3.5\lib\shutil.py", line 120, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\temp\\temp\\182'

list= random.sample(range(1, 306), 220)行中的数字从220更改为305之后,错误将消失。在

完整的代码。在

#!/usr/bin/python
#coding:utf-8
import sys

import os.path
import shutil
import random
import time

path = r'E:\temp\temp'
targetpath1 = r'E:\temp\old'
targetpath2 = r'E:\temp\new'

# create the random file.
list= random.sample(range(1, 306), 220)
for i in list:
    file_dir = os.path.join(path, str(i))
    with open(file_dir, 'w') as f:
        f.write('file_dir: %s' % file_dir)
        f.close()

time.sleep(1)

# move the file

list = random.sample(range(1, 306), 220)
for i in list:
    file_dir = os.path.join(path, str(i))
    # print file_dir
    # targetpath1_dir = os.path.join(targetpath1, str(i))
    shutil.move(file_dir, targetpath1)
files = os.listdir(path)


for file in files:
    # print(file)
    # print file
    dir = os.path.join(path, file)

    if dir != file_dir:
        shutil.move(dir, targetpath2)

请参考。在

我查了你的密码,是对的。 那么问题可能是: 1您只能运行一次代码,两次或更多次将导致此错误。 2在运行代码之前,请确保所有306文件都在小麦目录中。在

我建议使用复制,而不是移动,然后在每次运行之前清除列车和测试文件。在

相关问题 更多 >