2015-12-03 3 views
-2

Когда я запускаю следующее, все работает нормально.Почему «os.path.getsize» не работает с обычной строкой

import os 
fileSize=os.path.getsize("/Users/Richard/Desktop/Schedule.doc") 
print fileSize 

Когда я запускаю следующее, однако я получаю сообщение об ошибке «нет такого файла или каталога». Может ли os.path.getsize не принимать переменные укусы? Я хочу, как следующее, потому что будет легче копировать, проходить и редактировать в нескольких программах.

import os  
fileName ="Schedule.doc" 
path = os.path.join('Users','Richard', 'Desktop') 
filelocation = os.path.join(path, fileName) 
fileSize=os.path.getsize(filelocation) 
print fileSize 
+0

Отступы выглядят так, как в вашем фактическом файле? Отступы имеют значение в Python. Кроме того, вы действительно должны быть более конкретными, чем «это не работает». – user2357112

+0

Отступ не был в моем фактическом файле – Tyberius

+0

По крайней мере, убедитесь, что 'path' фактически содержит допустимый путь к файлу' print path' ... –

ответ

2

Попробуйте распечатать filelocation. Вы обнаружите, что это не начинается с косой черты. Выведенные команды os.path.join построили относительный путь, поэтому Python ищет Users/Richard/Desktop/Schedule.doc относительно текущего каталога.

os.path.join('/Users', ...), с первым аргументом, начинающимся с косой черты, должен стать абсолютным путем.