我正在构建一个简单的帮助脚本,用于将代码库中的几个模板文件复制到当前目录.但是,我没有存储模板的目录的绝对路径.我确实有一个来自脚本的相对路径,但是当我调用脚本时,它将其视为相对于当前工作目录的路径.有没有办法指定这个相对url来自脚本的位置?
假设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) 出于某种原因,我的代码无法打开一个简单的文件:
这是代码:
file1 = open('recentlyUpdated.yaml')
Run Code Online (Sandbox Code Playgroud)
错误是:
IOError: [Errno 2] No such file or directory: 'recentlyUpdated.yaml'
Run Code Online (Sandbox Code Playgroud)
open()的完整路径,似乎没有任何工作.假设我有一个python项目,结构如下:
project
/data
test.csv
/package
__init__.py
module.py
main.py
Run Code Online (Sandbox Code Playgroud)
__init__.py:
from .module import test
Run Code Online (Sandbox Code Playgroud)
module.py:
import csv
with open("..data/test.csv") as f:
test = [line for line in csv.reader(f)]
Run Code Online (Sandbox Code Playgroud)
main.py:
import package
print(package.test)
Run Code Online (Sandbox Code Playgroud)
当我运行时,main.py我收到以下错误:
C:\Users\Patrick\Desktop\project>python main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
import package
File "C:\Users\Patrick\Desktop\project\package\__init__.py", line 1, in <module>
from .module import test
File "C:\Users\Patrick\Desktop\project\package\module.py", line 3, in <module>
with open("../data/test.csv") as f:
FileNotFoundError: [Errno 2] No such file or directory: …Run Code Online (Sandbox Code Playgroud) 我在Windows 7 64位上的F:驱动器上有一个.csv文件,我想读入pandas并进行操作.
我看到的所有示例都没有读取除简单文件名之外的任何内容(例如'foo.csv').
当我尝试这个时,我得到的错误消息并没有让我明白这个问题:
import pandas as pd
trainFile = "F:/Projects/Python/coursera/intro-to-data-science/kaggle/data/train.csv"
trainData = pd.read_csv(trainFile)
Run Code Online (Sandbox Code Playgroud)
错误消息说:
IOError: Initializing from file failed
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一些简单的东西.谁能看到它?
更新:
我确实得到了这样的更多信息:
import csv
if __name__ == '__main__':
trainPath = 'F:/Projects/Python/coursera/intro-to-data-science/kaggle/data/train.csv'
trainData = []
with open(trainPath, 'r') as trainCsv:
trainReader = csv.reader(trainCsv, delimiter=',', quotechar='"')
for row in trainReader:
trainData.append(row)
print trainData
Run Code Online (Sandbox Code Playgroud)
我在阅读时收到了权限错误.当我检查文件的属性时,我发现它是只读的.取消选中后,我成功读取了892行.
现在大熊猫也在努力.无需移动文件或修改路径.谢谢你的期待.
最好没有整个目录地址。我可以定义相对于可执行脚本位置的文件夹吗?
dataframe.to_csv('findorb_data.txt',header=False, index=False)
Run Code Online (Sandbox Code Playgroud)