파이썬 초보가 질문 드립니다.

thinga3의 이미지

일단 전 파이썬을 분석 용으로만, 즉 계산기로만 사용했기 때문에 어떤 환경을 만들거나 하는 것은 경험해보지 못했습니다.
제가 잘 모르기 때문에 지금 물어볼려고 하는 걸 인터넷에서 어떻게 찾아야 할지도 모르겠어서 글 남깁니다 .

일단 지금 제가 만들고자 하는 건 특정 디렉토리에 xml 파일이 만들어질 때마다 xml 파일을 파싱하여 필요 정보를 추출한 후 그 정보에서 분석을 하여 최종 보고서로 만드는 환경을 구축하는 것 입니다.
일단 특정 디렉토리를 계속 감시하는 건 찾아보니 watchdog으로 해결이 가능해 보였고, xml 파싱이나 보고서로 만드는 것은 어떻게든 해결이 가능할 것으로 생각하고 있습니다.
단지, watchdog으로 xml 파일이 생길 때마다 파일 내에서 정보를 추출하고, 그 정보를 활용하여 특정 Raw data를 분석하는데 일부 시간이 소요되게 됩니다.
이 때, 분석이 수행되는 시간에 watchdog으로 지켜보고 있는 디렉토리에 xml 파일이 생기면 그 파일은 skip이 될 거라고 생각이 되는데,
이와 같은 경우를 방지하기 위해서 디렉토리에 xm 파일이 생성되면 분석해라라는 신호를 던지고 분석이 끝나고 보고서가 만들어질 때까지 기다리는 것이 아닌 분석은 분석대로 돌아가면서 디렉토리를 검사하여 새로운 xml 파일이 생길 때 재차 분석해라라는 명령을 수행할 수 있는 방법을 물어보고자 글 남깁니다.

뭔가, 제가 잘 모르기 때문에 글에 두서가 없고 알아보기 힘든 점은 죄송합니다.
이를 어떻게 해결해야 할지 알려주시면 정말 감사합니다.

세벌의 이미지

이 때, 분석이 수행되는 시간에 watchdog으로 지켜보고 있는 디렉토리에 xml 파일이 생기면 그 파일은 skip이 될 거라고 생각이 되는데,
그런가요? 구현하기에 따라 생각대로 될 수도 있고, 안 될 수도 있을 거 같네요. 두서 없는 질문에 두서 없는 답변이었습니다.
swish95의 이미지

watchdog 을 별도로 만들기 보다 하나의 프로세스로 만듭니다.
물론 두개의 별도의 프로세스로 만들어도 문제가 되거나 하진 않겠죠

특정 디렉토리를 glob 이나 os 의 filelist 명령어 ( dir, ls ..) 를 filter 를 걸어서 일정 주기 단위로 새로운 파일이 생긴걸 감시하는거죠
그리고 처리된 파일은 별도의 list - .processlist - 등으로 관리합니다.
그래서 list 에 없는 파일만 작업후 list 파일에 append 하는거죠

또한 파일의 형태에 따라 다른 전략을 사용합니다.
파일이 timestamp 같은 유일한 키값이 있다면 timestamp 값만 관리할수 있고

파일이 일정시간이 지난뒤에 삭제 된다면 역시 관리되는 리스트 파일에서 삭제된 파일도 제거해서 해당 list 파일이 무한정 커지는걸 막아야 되겠죠

뭐 어쨌든 정답은 없습니다.
xml 파일의 네이밍이 어떤식으로 만들어지는지, 또는 파일이 생기는 시점에 처리되지 않도록 마지막 파일은 제외해야 하는지,
해당 디렉토리의 관리는 어떤식으로 되는지에 따라 전략을 수정해야 되겠죠

------------------------------------------------------------
ProgrammingHolic

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.