, который не отображается в вашем примере, но записывая это:
infilename = 'c:/mydir1/mydir2\mydir3\mydir4\123xyz.csv'
не является хорошей идеей, потому что некоторые из строчных (и нескольких прописных) букв интерпретируются как escape-последовательности, если следовать за antislash , Известными примерами являются \t
, \b
, есть другие. Например:
infilename = 'c:/mydir1/mydir2\thedir3\bigdir4\123xyz.csv'
дважды терпит неудачу, потому что 2 символа интерпретируются как «вкладка» и «обратное пространство».
Когда вы имеете дело с буквальным пути в стиле Windows (или регулярными выражениями), вы должны использовать префикс raw и, лучше, нормализовать свой путь, чтобы избавиться от косых черт.
infilename = os.path.normpath(r'c:/mydir1/mydir2\mydir3\mydir4\123xyz.csv')
Однако исходный префикс применяется только к литералам . Если появляется возвращаемая строка, при печати repr(string)
, как 'the\terrible\\dir'
, то символы табуляции уже помещены в строку, и вы ничего не можете сделать, кроме паршивой пост-обработки.