LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2704|回复: 6

python下,处理目录时,如何得到环境变量

[复制链接]
发表于 2006-8-13 11:55:44 | 显示全部楼层 |阅读模式
如果使用shell,可以cd $HOME的方式,用os模块也是可以的,但是我需要是用python自带的命令。比如,我的脚本中需要file=open('/home/xxx/aa.txt'),问题是这个xxx目录大家都是不一样的,我想大概要获得$HOME的环境变量才可以吧,那要如何实现呢?
谢谢
发表于 2006-8-13 15:33:30 | 显示全部楼层
这样不好吗?
  1. import os
  2. homedir=os.getenv('HOME')
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-13 18:28:56 | 显示全部楼层
Post by Archetype
这样不好吗?
  1. import os
  2. homedir=os.getenv('HOME')
复制代码
多谢!!
想再问个现在比较头痛的问题:
1.如何简单的判断一个文件是否存在?
2.如何获取时间差,以秒为单位。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-13 21:58:17 | 显示全部楼层
嘿嘿,1搞定了
os.access(file,os.F_OK)
2的意思是:一个游戏,从开始到结束所花费的时间,我想得到这个以秒为单位的时间
回复 支持 反对

使用道具 举报

发表于 2006-8-14 11:00:38 | 显示全部楼层
看一下time模块的time()函数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-15 18:03:11 | 显示全部楼层
Post by Archetype
看一下time模块的time()函数。

恩,的确如此,看来还是对函数不够熟悉

Archetype兄,玩玩这个小游戏吧,没有你的帮助这个小游戏肯定完成不了。
实在是很寒颤的代码,各位不要嘲笑我这个菜鸟啊

  1. #!/usr/bin/python
  2. #Filename: rand-0.1.1.py
  3. #Writer:Frank(sanfanling)  Lisence:GPL
  4. #changelog:add all time "clear" function;re-design the output
  5. import random,os,time,re
  6. os.system('clear')
  7. while True:
  8.         path_home=os.getenv('HOME')
  9.         if(os.access(path_home+'/.randata.log',os.F_OK)):
  10.                 pass
  11.         else:
  12.                 os.system('touch $HOME/.randata.log')

  13.         print '''1     Play game
  14. 2     See the best record
  15. 3     Delete the log file
  16. 4     Quit'''
  17.         ask0=raw_input('please select:')
  18.         if(ask0=='1'):
  19.                 os.system('clear')
  20.                 file=open(path_home+'/.randata.log','a')
  21.                 ask1=''
  22.                 while ask1=='':
  23.                         time1=time.time()
  24.                         seed=random.randrange(1000,9999)
  25.                         p=0
  26.                         print seed      #this is test line, if you want to test this program, you can del the "#"
  27.                         while True:
  28.                                 p=p+1
  29.                                 guess0=raw_input('Please input a number form 1000 to 9999:')
  30.                                 if re.search('[^0-9]',guess0) or guess0=='':
  31.                                         print 'Not a number,and it would be counted as a try!'
  32.                                         continue
  33.                                 guess=int(guess0)
  34.                                 if guess<1000 or guess>9999:
  35.                                         print 'Invalid number you input,and it would be counted as a try!'
  36.                                         continue
  37.                                 if guess<seed:
  38.                                         print 'More please'
  39.                                         continue
  40.                                 if guess>seed:
  41.                                         print 'Less please'
  42.                                         continue
  43.                                 if guess==seed:
  44.                                         time2=time.time()
  45.                                         utime=str(int(time2-time1))
  46.                                         file.write(utime+'\n')
  47.                                         if p<=6:
  48.                                                 print 'You got it after',p,'tries','and',utime,'seconds,perfect!!'
  49.                                                 break
  50.                                         if 6<p<=15:
  51.                                                 print 'You got it after',p,'tries','and',utime,'seconds,perfect!!'
  52.                                                 break
  53.                                         else:
  54.                                                 print 'You got it after',p,'tries','and',utime,'seconds,perfect!!'
  55.                                                 break
  56.                         ask1=raw_input('Do you want to play again?(press "ENTER" to continue):')
  57.                 file.close()
  58.                 os.system('clear')
  59.                 continue
  60.         elif(ask0=='2'):
  61.                 os.system('clear')
  62.                 list=[]
  63.                 file=open(path_home+'/.randata.log')
  64.                 file.seek(0)
  65.                 check=file.read()
  66.                 if(len(check)==0):
  67.                         print 'No record at all now!'
  68.                         continue
  69.                 else:
  70.                         p=0
  71.                         time_all=0
  72.                         file.seek(0)
  73.                         for line in file.readlines():
  74.                                 list.append(int(line))
  75.                                 p=p+1
  76.                         for time_single in list:
  77.                                 time_all=time_all+time_single
  78.                         list.sort()
  79.                         if p==1:
  80.                                 print 'There is only 1 record in log file!'
  81.                                 print 'The record is',list[0],'second(s)'
  82.                         else:
  83.                                 print 'There are',p,'records in log file!'
  84.                                 print 'The best record is:',list[0],'second(s)'
  85.                                 list.reverse()
  86.                                 print 'The worst record is:',list[0],'second(s)'
  87.                                 print 'The all time you played is:',time_all,'second(s)'
  88.                                 print 'The average time you play is:',time_all/(p+0.0),'second(s)'
  89.                         file.close()
  90.                         print
  91.                         receive=raw_input('Press any "ENTER" to back to menu........')
  92.                         os.system('clear')
  93.                         continue
  94.         elif(ask0=='3'):
  95.                 os.system('rm $HOME/.randata.log')
  96.                 os.system('clear')
  97.                 continue
  98.         elif(ask0=='4'):
  99.                 break
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-8-15 22:36:35 | 显示全部楼层
我还真试了,呵呵。现在猜数字也快变成一个经典的Hello World了,Tomcat自带的JSP示例其中就有这么一个^_^
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表