OSError:[Errno 22]无效参数 - 文件路径中的用户名为“\ rock \”时出现问题

问题描述 投票:1回答:2

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

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

任何帮助,将不胜感激!

python filepath errno invalid-argument
2个回答
1
投票

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

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
投票

使用原始字符串:

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

或逃避\

'Users\\robk\\Downloads\\AR_New_Records.csv'
© www.soinside.com 2019 - 2024. All rights reserved.