2016-10-22 3 views
-1

Я пытаюсь конкатенацией «\» с путем и именем файла в папке, но когда я пытаюсь сцепить, я получаю EOL при сканировании строкового литерала:конкатенации строк «» питона

path = r"C:\Users\karth\Desktop\udacity\2000" 
add = '\' 
file = os.listdir(path) 
['2000Q1.zip', 
'2000Q2.zip', 
'2000Q3.zip', 
'2000Q4.zip', 
'Acquisition', 
'Performance'] 

print (path+ add + file[0]) 
+4

Просто посмотрите на выделение - вы избегаете цитаты с '\ ''. – Li357

+2

Почему вы используете raw notation для 'path', но не для' add'? – Goyo

+3

'os.path.join' функция должна обрабатывать это правильно – agg3l

ответ

-1

Когда вы используете \' внутри строки, она принимает ' как часть строки (а не цитату строки закрытия). \ известен как символ побега. Вы должны написать:

add = '\\' 

Согласно String Literals: Escape Characters документа, ниже приводится список всех Escape-последовательности с их значениями:

Escape Sequence  Meaning 
\newline   Ignored 
\\     Backslash (\) 
\'     Single quote (') # <---- Cause of error in your code 
\"     Double quote (") 
\a     ASCII Bell (BEL) 
\b     ASCII Backspace (BS) 
\f     ASCII Formfeed (FF) 
\n     ASCII Linefeed (LF) 
\r     ASCII Carriage Return (CR) 
\t     ASCII Horizontal Tab (TAB) 
\v     ASCII Vertical Tab (VT) 
\uxxxx    Character with 16-bit hex value XXXX (Unicode only (1) 
\Uxxxxxxxx   Character with 32-bit hex value XXXXXXXX (Unicode only) (2) 
\v     ASCII Vertical Tab (VT) 
\ooo    Character with octal value OOO (3,5) 
\xhh    Character with hex value HH (4,5) 
+0

он работает в моем случае спасибо –

2

Использование os.path.join:

path = r"C:\Users\karth\Desktop\udacity\2000" 
file = os.listdir(path) 

print(os.path.join(path, file[0])) 

или glob.glob, чтобы предоставить список каталогов на весь маршрут:

import glob 
pattern = r"C:\Users\karth\Desktop\udacity\2000\*" 
filenames = glob.glob(pattern) 
print(filenames[0]) 
+0

спасибо, что он сработал отлично –

+0

Чтобы сделать это еще лучше, объясните, почему код OPs не работал первым, а затем предложите решение :) – Li357

Смежные вопросы