有os.getcwd()、sys.argv[0]、sys.path[0]三种,有什么不同呢?
当前工作目录 为d:\>
执行程序 python程序如图所示:
d:\>python d:/project/test/test.py
test.py的源码如下:
print(sys.path[0])
print(os.getcwd())
print(sys.argv[0])
其结果:
d:\project\test
d:\
d:/project/test/test.py
结论:
os.getcwd返回的是当前工作根目录
sys.argv[0] 返回的python命令后面的第一个字符串变量
sys.path[0] 返回的是被执行脚本所在的目录
将当前目录切换到被执行文件所在的目录
para.csv在被执行文件所在的同级目录
print(sys.path[0])
print(os.getcwd())
print(sys.argv[0])
os.chdir(sys.path[0])
print(os.getcwd())
df=pd.read_csv('para.csv')
print(df)
结果输出:
d:\project\test
d:\
d:/project/test/test.py
d:\project\test
train records num 710661
0 validation records num 34395.000000
1 epoch 50000.000000
2 layer one units 32.000000
3 layer two units 6.000000
4 keep_prob 0.800000
5 regularization_rate 0.000100
6 learning_rate 0.001000
7 num_layer_input_units 6.000000
8 num_layer_output_units 6.000000
9 run time total seconds 45095.870531
结论:正确地读取了para.csv文件,
将os.chdir(sys.path[0])注释掉
结果输出:FileNotFoundError: File b'para.csv' does not exist
结论:说明os.chdir(sys.path[0])能将当前工作目录切换到被执行文件所在的目录