免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2082 | 回复: 0
打印 上一主题 下一主题

在Ubuntu中安裝Wine後搜索文件時發現卡死就是永遠回圈 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-11 23:37 |只看该作者 |倒序浏览
搜索程序是我自己寫的
我不知道是我的程序問題或系統問題



在Ubuntu中安裝Wine後搜索文件時發現卡死就是永遠回圈


件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/Program Files (x86)/iTunes/iTunes.Resources/pt_PT.lproj/DevicePrefsMovies.nib/objects.xib
/home/jack/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/Program Files (x86)/iTunes/iTunes.Resources/pt_PT.lproj/DevicePrefsMovies.nib
/home/jack/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/users/jack/我的文件/.wine/drive_c/Program Files (x86)/iTunes/iTunes.Resources/pt_PT.lproj/Localizable.strings

我也發現由根目錄開始搜索也有這個問題

/home/jack/python2/Backup.py
/home/jack/Backup.py
/proc/self/task/4994/root/home/jack/python2/Backup.py
/proc/self/task/4994/root/home/jack/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/python2/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/python2/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/python2/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/python2/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack/Backup.py
/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/proc/self/task/4994/root/home/jack
  1. #!/usr/bin/python3.2
  2. import os
  3. import sys
  4. import fnmatch
  5. import time
  6. import math

  7. fcount   = dcount = 0
  8. maxdepth = 0
  9. result   = [ ]

  10. class Search(object):
  11.     def __init__(self, path, names,  args=[]):
  12.         # Check if defalut arg not in args will extend in args
  13.         
  14.         self.path  = path
  15.         self.names = names
  16.         self.args  = args
  17.    
  18.     def _match_return(self, patterns):
  19.         def __match_return(path, files):
  20.             result = [ ]
  21.             for pattern in patterns:
  22.                 result.extend(fnmatch.filter(files, pattern))
  23.             return result
  24.         return __match_return
  25.    
  26.     def search(self):
  27.         global fcount, dcount, search_result
  28.         find_d = find_f = ignore = False
  29.         files = os.listdir(self.path)
  30.         file_list = files
  31.         if 'i' in self.args or '--ignore' in self.args:
  32.             ignore = True
  33.             self.names  = [n.upper( ) for n in self.names]  
  34.             files  = [f.upper( ) for f in files]   
  35.         searchname = self._match_return(self.names)
  36.         filenames  = searchname(self.path, files)
  37.         
  38.         for file in file_list:
  39.             srcname = os.path.join(self.path, file)
  40.             
  41.             if 'c' in self.args or '--count' in self.args:
  42.                 if os.path.isdir(srcname):
  43.                     dcount += 1
  44.                 else:
  45.                     fcount +=1
  46.                 tcount = time.clock( )
  47.             
  48.             # Dicition whether subdir if True into subdir
  49.             if os.path.isdir(srcname):
  50.                 Search(srcname, self.names, self.args).search( )

  51.             if ignore:
  52.                 file = file.upper( )
  53.                
  54.             if 'v' in self.args or '--verbose' in self.args:
  55.                 self._tryprint(srcname)

  56.             if 'd' in self.args or '--dir' in self.args:
  57.                 find_d = True
  58.                 if file in filenames and os.path.isdir(srcname):
  59.                     result.append(srcname)
  60.                   
  61.             if 'f' in  self.args or '--file' in  self.args:
  62.                 find_f = True
  63.                 if file in filenames and os.path.isfile(srcname):
  64.                     result.append(srcname)
  65.             '''
  66.             if 'm' in self.args or '--maxdepth' in self.args:
  67.                 depth = args.index()
  68.             '''
  69.             if file in filenames and find_f is not True and find_d is not True:   
  70.                 result.append(srcname)
  71.                 print(srcname)
  72.     def _tryprint(self, arg):
  73.         try:
  74.             print(arg)
  75.         except UnicodeEncodeError:
  76.             print(arg.encode('utf-16'))
  77.    
  78.     def _size(self, bytes):
  79.         lst = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
  80.         if bytes == 0:
  81.             return ('0.00' + ' ' + lst[0])
  82.         i = int(math.log(bytes, 1024))
  83.         return ('%.2f' + ' ' + lst[i]) % (bytes / 1024 ** i)
  84.    
  85. if __name__ == '__main__':
  86.     #start = time.clock( )
  87.     #s = Search('/home', ['PYTHON', 'Backup.py', 'GUI.py', 'BIND.py', 'dir.py'], ['--ignore'])
  88.     s  = Search('/', ['Backup.py'])
  89.     s.search( )
  90.     #print('Finish at: %s' % str(time.clock( ) - start))
  91.     print('-'*25, 'Result', '-'*25)
  92.     for r in result:
  93.         print(r)
  94.     #Search(path='/home/jack', names='python', args='s')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP