如何确保 open('file', 'w') 创建的新文件在当前运行脚本所在的文件夹里?

2012-08-11 08:05:36 +08:00
 newton108
貌似所创建的文件是在系统的 pwd 里的,如果改成一个相对路径呢?
2995 次点击
所在节点    Python
6 条回复
jerry
2012-08-11 08:23:56 +08:00
os.chdir(path)
ufo22940268
2012-08-11 08:44:29 +08:00
那open('file', 'w')怎么使即将被打开的文件在是和当前python文件相同路径的呢?
paloalto
2012-08-11 08:46:04 +08:00
我在web.py里是这么弄的:
homedir = os.getcwd() #得到当前目录的路径
filedir = '%s/static/upload/image' %homedir #图片存放路径
d_path = filedir + '/%d/%d/%d' %(now.year, now.month, now.day)#按年月日创建分级目录

fout = open(d_path + '/' + filename,'wb') #文件处理
newton108
2012-08-12 06:30:03 +08:00
@paloalto 可問題是,比如我 terminal 裡的 pwd 是 ~,如果 py 文件裡用 os.getcwd() 的話, 從 terminal 裡運行 py 文件得到的文件夾也是 ~,而不是 py文件所在的文件夾。
newton108
2012-08-12 06:32:37 +08:00
我自問自答吧
os.path.dirname(__file__)
leiz
2012-08-12 10:27:37 +08:00
os.path.dirname(__file__)

同楼上。。。
没人用这个变量的么...?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/44852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX