如何根据相对路径导入Python模块?
例如,如果dirFoo包含Foo.py和dirBar,和dirBar包含Bar.py,我怎么导入Bar.py到Foo.py?
这是一个直观的表示:
dirFoo\
Foo.py
dirBar\
Bar.py
Run Code Online (Sandbox Code Playgroud)
Foo希望包括Bar,但重组文件夹层次结构不是一种选择.
给定一个路径"mydir/myfile.txt",如何在Python中找到相对于当前工作目录的文件的绝对路径?例如在Windows上,我最终可能会:
"C:/example/cwd/mydir/myfile.txt"
Run Code Online (Sandbox Code Playgroud) 打开文件作为读/写(如果存在)或不存在的最佳方法是什么,然后创建它并将其作为读/写打开?从我读到的,file = open('myfile.dat', 'rw')应该这样做,对吧?
它不适合我(Python 2.6.2),我想知道它是否是一个版本问题,或者不应该像那样或什么工作.
最重要的是,我只需要解决问题的方法.我很好奇其他的东西,但我需要的只是一个很好的方式来做开场部分.
更新:封闭目录可由用户和组写入,而不是其他(我在Linux系统上...所以权限775换句话说),确切的错误是:
IOError:没有这样的文件或目录.
我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.
例如,假设我有三个文件.使用execfile:
script_1.py电话script_2.py.script_2.py打电话script_3.py.我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py?
(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)
下面的代码将不会加入,在调试时,命令不会存储整个路径,只会存储最后一个条目.
os.path.join('/home/build/test/sandboxes/', todaystr, '/new_sandbox/')
Run Code Online (Sandbox Code Playgroud)
当我测试它时,它只存储/new_sandbox/代码的一部分.
我想看看在python中确定当前脚本目录的最佳方法是什么?
我发现,由于调用python代码的方法很多,很难找到一个好的解决方案.
这是一些问题:
__file__如果脚本执行时未定义exec,execfile__module__ 仅在模块中定义用例:
./myfile.pypython myfile.py./somedir/myfile.pypython somedir/myfile.pyexecfile('myfile.py') (来自另一个脚本,可以位于另一个目录中,并且可以有另一个当前目录.我知道没有完美的解决方案,但我正在寻找解决大多数情况的最佳方法.
最常用的方法是os.path.dirname(os.path.abspath(__file__)),如果你从另一个脚本执行脚本,这实际上不起作用exec().
任何使用当前目录的解决方案都将失败,根据调用脚本的方式或者可以在运行的脚本中更改它,可能会有所不同.
我有上面提到的错误 s1="some very long string............"
谁知道我做错了什么?
假设python代码在先前的Windows目录中称为"main"而不知道,并且在运行时安装代码的任何地方都需要访问目录"main/2091/data.txt".
我应该如何使用开放(位置)功能?应该是什么位置?
编辑:
我发现下面的简单代码会起作用..它有什么缺点吗?
file="\2091\sample.txt"
path=os.getcwd()+file
fp=open(path,'r+');
Run Code Online (Sandbox Code Playgroud) 我想通过Python连接到远程PostgreSQL数据库来进行一些基本的数据分析.这个数据库需要SSL(verify-ca)以及三个文件(我有):
我找不到一个描述如何与Python建立连接的教程.任何帮助表示赞赏.
我正在使用pandas并且需要阅读一些csv文件,结构是这样的.
文件夹/文件夹2/scripts_folder/script.py
文件夹/文件夹2/data_folder/data.csv
如何从scripts_folder中的脚本打开data.csv文件?
我试过这个:
absolute_path = os.path.abspath(os.path.dirname('data.csv'))
pandas.read_csv(absolute_path + '/data.csv')
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
File folder/folder2/data_folder/data.csv does not exist
Run Code Online (Sandbox Code Playgroud) python ×10
path ×3
file ×2
dirname ×1
file-io ×1
linux ×1
pandas ×1
postgresql ×1
python-2.7 ×1
python-3.6 ×1
pythonpath ×1
scripting ×1
ssl ×1
string ×1