OSError: [Errrno 22] Недопустимый аргумент - возникла проблема с именем пользователя «\ robk \» в пути к файлу - PullRequest
0 голосов
/ 01 сентября 2018

Я сравниваю два файла и записываю разницу в третий файл.

Я не могу открыть файлы, потому что (возможно) в имени пути есть \r. Это выполняется на рабочем компьютере, и мое имя пользователя robk , которое, я думаю, является проблемой.

Ошибка:

OSError: [Errno 22] Invalid argument: Users\robk\\Downloads\\AR_New_Records.csv'

Вот мой код. Проблема возникает из двух последних строк.

def read_items(filename):
    with open(filename) as fh:
        return {line.strip() for line in fh}

def diff_string(old, new):
    return "\n".join(
        ['[-] %s' % gone for gone in old - new] +
        ['[+] %s' % added for added in new - old]
    )

with open('Users\robk\Downloads\AR_New_Records.csv', 'w') as fh:    
fh.write(diff_string(read_items('Users\robk\Downloads\latestroster.csv')), read_items('Users\robk\Downloads\oldroster.csv'))

Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Я считаю, что ваша ошибка вызвана неверным путем к файлу. В настоящее время вы используете относительный путь. Попробуйте:

with open('C:/Users/rkrouse/Downloads/AR_New_Records.csv', 'w') as fh:    
fh.write(diff_string(read_items('C:/Users/rkrouse/Downloads/latestroster.csv'), read_items('C:/Users/rkrouse/Downloads/oldroster.csv')))

Я переключил ваши относительные пути на полные пути. Кроме того, обратная косая черта переключена на прямую косую черту.

0 голосов
/ 01 сентября 2018

Использовать необработанную строку, например:

r'Users\robk\Downloads\AR_New_Records.csv'

Или бежать \:

'Users\\robk\\Downloads\\AR_New_Records.csv'
...