2015-05-09 1 views
0

Я сделал простой тестовый код в python, который читает из текстового файла, а затем преформирует действие, если текстовый файл содержит строку «on».Пытается получить доступ к файлу, расположенному на flashdrive

Мой код отлично работает, если я запускаю скрипт на своем жестком диске с текстовым файлом в той же папке. Пример: (C: \ Python27 \ my_file.txt и C: \ Python27 \ my_scipt.py).

Однако, если я попробую этот код, пока мой текстовый файл находится на моем flash-диске, и мой скрипт все еще находится на моем жестком диске, он не будет работать, даже если у меня установлен правильный путь. Пример: (G: \ flashdrive_folder \ flashdrive_file.txt и C: \ Python27 \ my_scipt.py).

Вот код, который я выписал.

def locatedrive(): 
     file = open("G:\flashdrive_folder\flashdrive_file.txt", "r") 
     flashdrive_file = file.read() 
     file.close() 

     if flashdrive_file == "on": 
      print "working" 

     else: 
      print"fail" 


    while True: 
     print "trying" 
     try: 
      locatedrive() 
      break 
     except: 
      pass 
      break 
+0

Я выяснил, находится ли файл в корневой папке flashdrive, мой код работает fi северо-восток Пример: «G: \ my_file.txt», но если файл находится в папке, я получаю сообщение об ошибке. Пример: «G: \ my_folder \ my_file.txt» Ошибка, которую я получаю: «IOError: [Errno 22] неверный режим (« r ») или имя файла:« G: \ my_folder \\ my_file.txt » – RatstabOfficial

+0

i have но не думаю, но я думаю '\\' должен быть '/' или использовать '\\\' –

ответ

3

обратной косой характер делает двойную обязанность. Windows использует его как разделитель путей, а Python использует его для создания управляющих последовательностей.

Вы должны избежать обратной косой черты, либо использовать один из других методов, описанных ниже (с помощью обратной косой черты!):

file = open("G:\\flashdrive_folder\\flashdrive_file.txt", "r") 

или

file = open(r"G:\flashdrive_folder\flashdrive_file.txt", "r") 

или

file = open("G:/flashdrive_folder/flashdrive_file.txt", "r") 
+0

Спасибо, что он работает! – RatstabOfficial

0

Использование:

import os 
os.chdir(path_to_flashdrive) 
0
cd /media/usb0 
import os 

path = "/media/usb0" 

#!/usr/bin/python 
import os 

path = "/usr/tmp" 

# Check current working directory. 
retval = os.getcwd() 
print "Current working directory %s" % retval 

# Now change the directory 
os.chdir(path) 

# Check current working directory. 
retval = os.getcwd() 

print "Directory changed successfully %s" % retval 
Смежные вопросы