我有以下结构
/
/myPackage/
__init__.py
myFile.csv
myFunc.py
/test/
__init__.py
func.py现在myfunc.py有了一个读取myFile.csv的函数
def foo():
with open('myFile.csv', newline='') as csvfile:
......如果我在func.py中导入foo,路径"myFile.csv“不再正确。如何从myFunc.py引用独立于导入myfunc的文件的myFile.csv?
发布于 2017-03-01 00:20:03
您可以使用__file__,它引用当前模块的文件路径;结合__file__和os.path.dirname,您可以获得包含该模块的目录。
import os
def foo():
directory = os.path.dirname(__file__)
csv_path = os.path.join(directory, 'myFile.csv')
with open(csv_path, newline='') as csvfile:
...如果您使用Python 3.4+,则可以使用pathlib:
import pathlib
def foo():
csv_path = pathlib.Path(__file__).parent / 'myFile.csv'
with csv_path.open(newline='') as csvfile:
...https://stackoverflow.com/questions/42513588
复制相似问题