Python的shutil
似乎无法将~
符号用于文件路径。这是一个常用的密钥,但是shutil似乎无法在文件路径中找到这些文件:
其中:
file2copy
Out[5]: '~/folder1/folder2/file.txt'
产生此错误:
File "/home/user/script.py", line 1192, in <module>
shutil.copy2(file2copy, newpath+'/newfilename.txt')
File "/home/user/anaconda2/envs/rootclone/lib/python2.7/shutil.py", line 130, in copy2
copyfile(src, dst)
File "/home/user/anaconda2/envs/rootclone/lib/python2.7/shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '~/folder1/folder2/file.txt'
我不确定这是一个错误还是只是~
密钥不能在python中使用。希望对此有所解决。我知道我可以使用确切的文件路径来解决这个问题,但~
密钥对于在用户之间进行更改等非常有用(无需重置工作目录等)
答案 0 :(得分:2)
~
是一个shell构造。
您应该使用os.path.expanduser()
,例如:
os.path.expanduser('~/folder1/folder2/file.txt')
会导致类似:
'/home/username/folder1/folder2/file.txt'
答案 1 :(得分:1)
无法使用您尝试使用的用户的相对路径,因为它会将“〜”符号解释为字符串的一部分,而不是终端解释它。
在你的情况下,你实际上必须把完整的路径文件。
这就像是:
/home/user/folder1/folder2/file.txt