IOError: [Errno 2] Нет такого файла или каталога, даже если файл существует
Я пытаюсь выяснить, почему у меня такая ошибка. Я запустил точно такой же код для другого каталога, который содержит четыре файла, и он работает просто отлично. На этот раз с использованием другого каталога я получаю сообщение об ошибке
IOError: [Errno 2] No such file or directory:
хотя файлы существовали. Вот код, который отлично работает для одного каталога, но не для другого, оба каталога существуют, и поэтому их четыре файла
Ошибка в строке:"с открытым ((имя_файла),'r') как f:"
import sys,csv,os
d_files = {}
def Readfile(file_name):
d_files[file_name] = []
print "file_name", file_name # printing the right name
with open((file_name),'r') as f:
reader=csv.reader((f),delimiter='\t')
for row in reader:
d_files[file_name].append(row)
print
try:
folder_input = raw_input("Please enter you folder name containing 4 files: ")
except Name_Error:
pass
for root,dirs,files in os.walk(folder_input):
for file in files:
print "file",file # the right file name
pathname=os.path.join(root,file)
print "DIR: ",pathname # right directory inputted
print "Now, the file is being parsed"
Readfile(file)
print "Now, file", file, "is done parsed"
print
Пользователь введет путь к четырем файлам, который я протестировал для одного каталога, и он работал, но не для другого каталога, который я на 100% уверен, что путь правильный и файлы существуют.
Заранее большое спасибо
2 ответа
Вместо этого вызовите Readfile с путем. Как показано ниже:
import sys,csv,os
d_files = {}
def Readfile(file_name):
d_files[file_name] = []
print "file_name", file_name # printing the right name
with open((file_name),'r') as f:
reader=csv.reader((f),delimiter='\t')
for row in reader:
d_files[file_name].append(row)
print
try:
folder_input = raw_input("Please enter you folder name containing 4 files: ")
except Name_Error:
pass
for root,dirs,files in os.walk(folder_input):
for file in files:
print "file",file # the right file name
pathname=os.path.join(root,file)
print "DIR: ",pathname # right directory inputted
print "Now, the file is being parsed"
Readfile(pathname)
print "Now, file", file, "is done parsed"
print
Попробуйте следующее:
import sys,csv,os
d_files = {}
def Readfile(file_name):
d_files[file_name] = []
print "file_name", file_name # printing the right name
with open(file_name,'r') as f:
reader=csv.reader((f),delimiter='\t')
for row in reader:
d_files[file_name].append(row)
print
try:
folder_input = raw_input("Please enter you folder name containing 4 files: ")
except Name_Error:
pass
for root,dirs,files in os.walk(folder_input):
for file in files:
print "file",file # the right file name
pathname=os.path.join(root,file)
print "DIR: ",pathname # right directory inputted
print "Now, the file is being parsed"
# Make sure here you type a file name under same directory
# or full path: "C:\\boot.ini" or "/etc/passwd". Also make sure the user running the script has permission for the folder.
Readfile(file)
print "Now, file", file, "is done parsed"
print