![](/img/trans.png)
[英]Open files, specified by a path provided via sys.argv in Python on Windows?
[英]Python; open file from path specified with sys.argv
我想從sys.argv中指定的路徑使用python打開一個csv文件。 該文件的名稱為'file.out',我想從sys.argv [2]中指定的腳本位置打開它。 但是,我不知道如何在pd.read_csv命令中指定腳本位置。 我嘗試了如下操作,但這不起作用。 問題是什么?
我的代碼如下
outputfolder = sys.argv[1]
scriptlocation = sys.argv[2]
df = pd.read_csv(open(scriptlocation('file.out', 'r')), header=None, delim_whitespace=True)
嘗試這個:
import os
fn = os.path.join(os.path.dirname(sys.argv[2]), 'file.out')
df = pd.read_csv(fn, header=None, delim_whitespace=True)
如果您使用Python v3.4 +和Pandas v0.18.1 +,則可以使用pathlib :
演示:
In [93]: from pathlib import Path
In [94]: p = Path(sys.argv[0])
In [95]: p
Out[95]: WindowsPath('C:/Users/Max/Anaconda3_5.0/envs/py36/Scripts/ipython3')
In [96]: fn = p.joinpath('file.out')
In [97]: fn
Out[97]: WindowsPath('C:/Users/Max/Anaconda3_5.0/envs/py36/Scripts/ipython3/file.out')
這不是pandas
問題。 您需要基於根文件夾(如果我理解正確,則為scriptlocation
)和文件名創建文件路徑。 然后,您將把構造的文件路徑傳遞給pd.read_csv()
。 所以您正在尋找os.path.join()
:
output_fn = os.path.join(scriptlocation , 'file.out')
df = pd.read_csv(output_fn, header=None, delim_whitespace=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.