求助django项目中运行python程序的问题
def fileChecker(path):
print('Child process %s.' % os.getpid())
dirs = os.listdir(path)
size = len(dirs)
while True :
tdirs = os.listdir(path)
if len(tdirs) > size :
time.sleep(5)
filename = tdirs[-1]
print( filename )
size = len(tdirs)
dirs = tdirs
if __name__ == '__main__':
print('Parent process %s.' % os.getpid())
p1 = Process( target=main )
p2 = Process( target=fileChecker, args=('./pictures/car_img',))
p1.start()
p2.start()
p1.join()
p2.join()
为何fileChecker中每次print都会输出两次
代码发全,main函数呢? suchocolate 发表于 2022-4-22 23:29
代码发全,main函数呢?
main就是django默认的,没有动 qaz7327 发表于 2022-4-23 14:38
main就是django默认的,没有动
代码不全 suchocolate 发表于 2022-4-23 15:04
代码不全
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os,sys,time
from matplotlib.cbook import print_cycles
from plate_detect import imgChecker,getPlate
from multiprocessing import Process,Queue,Pool
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import threading
def fileChecker(path):
cnt = 0
print('Child process %s.' % os.getpid())
dirs = os.listdir(path)
size = len(dirs)
while True :
lock.acquire()
tdirs = os.listdir(path)
if len(tdirs) > size :
time.sleep(5)
filename = tdirs[-1]
print( filename )
cnt += 1
print( 'cnt:%s'%(cnt) )
size = len(tdirs)
dirs = tdirs
lock.release()
def main():
"""Run administrative tasks."""
print('Child process %s.' % os.getpid())
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'parkSystem.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
print('Parent process %s.' % os.getpid())
p1 = Process( target=main )
p2 = Process( target=fileWatcher, args=('.\\pictures\\car_img',))
#p2 = Process( target=imgChecker, args=('./pictures/car_img',))
p1.start()
p2.start()
p1.join()
p2.join() 从代码逻辑看,只有列表tdirs的长度比dirs长度大,就会打印。
而dirs和tdirs的长度要取决于你这个./pictures/car_img 文件夹运行时文件的情况,这个是是代码中看不出来的。
你运行时观察一下文件中文件的情况。 本帖最后由 qaz7327 于 2022-4-25 11:01 编辑
suchocolate 发表于 2022-4-25 00:37
从代码逻辑看,只有列表tdirs的长度比dirs长度大,就会打印。
而dirs和tdirs的长度要取决于你这个./pictur ...
我这代码是想在文件夹放入新文件时输出文件名,但是不知道为啥运行时输出了两遍
http://tiebapic.baidu.com/forum/w%3D580/sign=4d6cf162ac50352ab16125006342fb1a/95c4442309f79052efbdb9eb49f3d7ca7acbd522.jpg?tbpicau=2022-04-27-05_10ccc65ecdc8d9ceafb0e9da2e3b1f67
页:
[1]