在 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}"
.
希望能回答问题。
要移动一些文件,我正在使用此代码:
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}"
.
希望能回答问题。