python 在文件路径中使用 ~ 符号时出现 shutil ioerror
python shutil ioerror when using the ~ symbol in filepaths
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 中使用。希望对此有所解决。我知道我可以使用确切的文件路径来解决这个问题,但是 ~
键对于在用户之间进行更改等很有用(无需重置工作目录等)
无法使用您尝试使用的用户的相对路径,因为它会将“~”符号逐字解释为字符串的一部分,而不是像终端那样解释它。
在您的情况下,您实际上必须输入文件的完整路径。
那会是这样的:
/home/user/folder1/folder2/file.txt
~
是一个 shell 结构。
你应该使用os.path.expanduser()
,例如:
os.path.expanduser('~/folder1/folder2/file.txt')
会产生类似这样的结果:
'/home/username/folder1/folder2/file.txt'
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 中使用。希望对此有所解决。我知道我可以使用确切的文件路径来解决这个问题,但是 ~
键对于在用户之间进行更改等很有用(无需重置工作目录等)
无法使用您尝试使用的用户的相对路径,因为它会将“~”符号逐字解释为字符串的一部分,而不是像终端那样解释它。
在您的情况下,您实际上必须输入文件的完整路径。
那会是这样的:
/home/user/folder1/folder2/file.txt
~
是一个 shell 结构。
你应该使用os.path.expanduser()
,例如:
os.path.expanduser('~/folder1/folder2/file.txt')
会产生类似这样的结果:
'/home/username/folder1/folder2/file.txt'