在 python 中移动文件时的反斜杠与正斜杠

Backslash vs forwardslash when moving files in python

要移动一些文件,我正在使用此代码:

import glob
import os
import shutil

list_of_files = glob.glob('C:/Users/user/staff/*') 
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)
filename= os.path.basename(latest_file)

shutil.move(latest_file, f"C:\Users\user\test folder\{filename}" 

代码有效,文件已移动,但我想知道这是否真的重要:

移动的文件是这样的:

C:/Users/user/staff\Aug-2021.csv

注意斜杠现在是向后的而不是向前的。当我的代码变得更复杂(为了最佳实践)时,斜杠的方向是否重要或将来会重要,还是它应该如何工作?

正斜杠或反斜杠都是完全有效的路径分隔符。此外,在路径字符串之前包含 'r' 是一个好习惯:

r'C:\Users\user\staff\Aug-2021.csv'

这意味着您的字符串将被视为原始字符串。您可以看到字符串文字参考 here

两者都可以,但混合斜杠和反斜杠至少很难看。如果你想做一些 os 独立的事情,你可以使用 os.sep 来获得你的 os.

的分隔字符
>>> import os
>>> os.sep
'\'

有了这个你可以做类似的事情

>>> os.sep.join(['foo','bar'])
'foo\bar'

但您也可以使用 os.path.join 构建路径,让 python 为您处理该问题。

>>> import os
>>> os.path.join(os.getcwd(),'foo.bar')
'C:\Users\Me\foo.bar'

两者工作相同,但尝试使用 \ 斜线以避免 0.1 的错误机会。 而且我也遇到编码错误,所以在路径前添加 r 例如:r"C:\Users\user\test folder\{filename}" .

希望能回答问题。