鱼C论坛

 找回密码
 立即注册
查看: 2994|回复: 6

求助django项目中运行python程序的问题

[复制链接]
发表于 2022-4-21 14:31:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


  1. def fileChecker(path):
  2.     print('Child process %s.' % os.getpid())
  3.     dirs = os.listdir(path)
  4.     size = len(dirs)
  5.    
  6.     while True :
  7.         tdirs = os.listdir(path)
  8.         if len(tdirs) > size :
  9.             time.sleep(5)
  10.             filename = tdirs[-1]
  11.             print( filename )

  12.         size = len(tdirs)
  13.         dirs = tdirs
  14.         
复制代码


  1. if __name__ == '__main__':   
  2.     print('Parent process %s.' % os.getpid())
  3.     p1 = Process( target=main )
  4.     p2 = Process( target=fileChecker, args=('./pictures/car_img',))
  5.     p1.start()  
  6.     p2.start()
  7.     p1.join()
  8.     p2.join()
复制代码
   


为何fileChecker中每次print都会输出两次

本帖被以下淘专辑推荐:

  • · django|主题: 61, 订阅: 0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-22 23:29:23 | 显示全部楼层
代码发全,main函数呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-23 14:38:27 | 显示全部楼层
suchocolate 发表于 2022-4-22 23:29
代码发全,main函数呢?

main就是django默认的,没有动
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-23 15:04:06 | 显示全部楼层
qaz7327 发表于 2022-4-23 14:38
main就是django默认的,没有动

代码不全
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-23 16:02:16 | 显示全部楼层
  1. #!/usr/bin/env python
  2. """Django's command-line utility for administrative tasks."""
  3. import os,sys,time

  4. from matplotlib.cbook import print_cycles
  5. from plate_detect import imgChecker,getPlate
  6. from multiprocessing import Process,Queue,Pool
  7. from watchdog.observers import Observer
  8. from watchdog.events import FileSystemEventHandler
  9. import threading



  10. def fileChecker(path):
  11.     cnt = 0
  12.     print('Child process %s.' % os.getpid())
  13.     dirs = os.listdir(path)
  14.     size = len(dirs)
  15.    
  16.     while True :
  17.         lock.acquire()

  18.         tdirs = os.listdir(path)
  19.         if len(tdirs) > size :
  20.             time.sleep(5)
  21.             filename = tdirs[-1]
  22.             print( filename )
  23.             cnt += 1
  24.             print( 'cnt:%s'%(cnt) )

  25.         size = len(tdirs)
  26.         dirs = tdirs
  27.         
  28.         lock.release()



  29. def main():
  30.     """Run administrative tasks."""
  31.     print('Child process %s.' % os.getpid())
  32.     os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'parkSystem.settings')
  33.     try:
  34.         from django.core.management import execute_from_command_line
  35.     except ImportError as exc:
  36.         raise ImportError(
  37.             "Couldn't import Django. Are you sure it's installed and "
  38.             "available on your PYTHONPATH environment variable? Did you "
  39.             "forget to activate a virtual environment?"
  40.         ) from exc

  41.     execute_from_command_line(sys.argv)
  42.    


  43. if __name__ == '__main__':   
  44.     print('Parent process %s.' % os.getpid())
  45.     p1 = Process( target=main )
  46.     p2 = Process( target=fileWatcher, args=('.\\pictures\\car_img',))
  47.     #p2 = Process( target=imgChecker, args=('./pictures/car_img',))
  48.     p1.start()  
  49.     p2.start()
  50.     p1.join()
  51.     p2.join()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-25 00:37:26 | 显示全部楼层
从代码逻辑看,只有列表tdirs的长度比dirs长度大,就会打印。
而dirs和tdirs的长度要取决于你这个./pictures/car_img 文件夹运行时文件的情况,这个是是代码中看不出来的。
你运行时观察一下文件中文件的情况。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-25 10:59:17 | 显示全部楼层
本帖最后由 qaz7327 于 2022-4-25 11:01 编辑
suchocolate 发表于 2022-4-25 00:37
从代码逻辑看,只有列表tdirs的长度比dirs长度大,就会打印。
而dirs和tdirs的长度要取决于你这个./pictur ...


我这代码是想在文件夹放入新文件时输出文件名,但是不知道为啥运行时输出了两遍

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 04:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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