2017-08-14 106 views
1

我正在创建一个python脚本,该脚本实际上将用户的参数作为参数传递给“文件路径”。它执行一些后期处理,并在与原始文件相同的目录中创建一个新文件。处理文件和路径的最佳做法是什么?

例如:myscript.py C:\\A\\sub_A\\work_on_this_file.csv

我使用的路径,我收到自己创建
C:\\A\\sub_A\\final_file.csv

文件处理程序,我被告知要使用os.chdir()导航到该文件夹​​,而不是和我的创造最终文件,而不是直接使用路径。这种情况下的最佳做法是什么?有没有改变工作目录的风险?

回答

1

我会鼓励你总是使用绝对路径,实际上这是最直接的方法。所以,使用绝对路径直接创建一个文件(或打开一个现有文件,无所谓)是好的。

当你不知道你是否有绝对或相对路径我竟被建议服用脚本的目录作为基本的文件夹,然后生成一个绝对路径,像这样:

import os 

cwd = os.path.abspath(os.path.dirname(__file__)) 
given_path = "../../myfile.csv" 
csv_path = os.path.abspath(os.path.join(cwd, given_path)) 

而不是__file__使用在处理模块/导入的脚本时使用sys.argv[0]。国际海事组织通常不需要改变CWD,很可能很快就会破坏其他事情。

+0

我会进一步建议记录所有这些路径,如果可行的话,但是。我不知道为什么你会被鼓励使用os.chdir(),除了解决一些第三方产品的遗留问题。 – Arafangion

相关问题