OSError: [Errrno 22] Invalid Argument - having problem with a username of "\robk\' in file path

OSError: [Errrno 22] Invalid Argument - having problem with a username of "\robk\' in file path

我正在比较两个文件并将差异写入第三个文件。

我无法打开文件,因为(可能)路径名中有 \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'))

如有任何帮助,我们将不胜感激!

使用像这样的原始字符串:

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

或转义\:

'Users\robk\Downloads\AR_New_Records.csv'

我认为您的错误是由无效的文件路径引起的。您当前使用的是相对路径。尝试:

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')))

我把你的相对路径换成了完整路径。此外,将反斜杠切换为正斜杠。