1、两种符号详解
在数据处理时,使用C++或python语言读入数据时,涉及到文件路径的输入,文件路径在windows下,默认形式为但斜线‘\’,如下图:
若输入路径时,直接写成如下形式:“E:\coding\C++”则会报错,显示文件不存在,即路径错误。那么需要使用双斜线形式"E:\\coding\\C++",则会正常运行。但是这样有点麻烦,一种新的形式,在vs与pycharm是都可以使用的,为使用'/'。那么,"E:\\coding\\C++"的等效为"E:/coding/C++"。
2、两种符号详解
文本数据格式如下:
2.1 VS下测试:
"/"形式路径输入:
#include<iostream>
using namespace std;
#include<fstream>
#include<sstream>void main()
{ifstream infile("D:/pts.txt", ios::in);char line[128];double x, y, z;while (infile.getline(line, sizeof(line))){stringstream word(line);word >> x;word >> y;word >> z;cout << x << " " << y << " " << z << endl;}system("pause");
}
"\\"形式路径输入:
#include<iostream>
using namespace std;
#include<fstream>
#include<sstream>void main()
{ifstream infile("D:\\pts.txt", ios::in);char line[128];double x, y, z;while (infile.getline(line, sizeof(line))){stringstream word(line);word >> x;word >> y;word >> z;cout << x << " " << y << " " << z << endl;}system("pause");
}
这两种形式均正常运行,成功将点云数据读取成功。
2.2 python测试
"/"形式路径输入:
with open('D:/pts.txt', 'r') as file:# 初始化一个列表来存储所有的点points = []# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z = line.strip().split(' ')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)# 将点添加到列表中points.append((x, y, z))# 打印所有点
for point in points:print(point)
"\\"形式路径输入:
with open('D:\\pts.txt', 'r') as file:# 初始化一个列表来存储所有的点points = []# 逐行读取数据for line in file:# 去除行尾的换行符并分割字符串x, y, z = line.strip().split(' ')# 将字符串转换为浮点数x = float(x)y = float(y)z = float(z)# 将点添加到列表中points.append((x, y, z))# 打印所有点
for point in points:print(point)
两种测试结果一致,均成功将数据读入进来。
3、总结
上述两种文件路径,在实际中使用均分常用,可以结合具体需要选择使用