笨方法一:
windows文件的路径是按反斜杠’'分开的
例如:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Xmanager 5
linux总文件路径是使用”/’分开。
例如:/home/username/anaconda3/envs/tensorflow/lib/python3.6/
反斜杠’\‘的路径,linux中无法识别
需要把反斜杠"",转为正斜杠“/”
python 中 字符串的replace方法进行替换
windows_path='C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Xmanager 5'
linux_path=windows_path.replace('\\','/')
#'C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Xmanager 5'
传统解决方法二:
data_folder = "source_data\\text_files\\"
file_to_open = data_folder + "raw_data.txt"
f = open(file_to_open)
print(f.read())
转换:
import os.path
data_folder = os.path.join("source_data", "text_files")
file_to_open = os.path.join(data_folder, "raw_data.txt")
f = open(file_to_open)
print(f.read())
这个是我实际的例子:
# 之前的只能在windows使用
# file_path = os.path.abspath('.') + '\\report\\' + rq + '-result.html'
# 转换之后
import os
file_path = os.path.join(os.path.abspath('.'), 'report', rq + '-result.html')
方法三最佳:我没有使用
Python 3.4介绍了一种全新的标准库pathlib,用于处理文件和路径问题,而且效果很棒!
使用pathlib时,你只需用斜杠符将路径或文件名传入一个新的Path()对象,剩下的交给它就可以了:
from pathlib import Path
data_folder = Path("source_data/text_files/")
file_to_open = data_folder / "raw_data.txt"
f = open(file_to_open)
print(f.read())
需要学习看此大神

本文详细介绍了在Python中处理Windows和Linux文件路径的方法,包括使用replace方法转换路径分隔符、利用os.path模块进行路径组合,以及pathlib库的现代路径处理方式。

224

被折叠的 条评论
为什么被折叠?



