가정 내 시스템 로그인 ID는 tom2deu입니다. 파이썬 프로그램이 하나 있습니다. 이제이 Python 프로그램을 수정하려고합니다.로그인 입력
내 질문
우리는 seprate 메모장 또는 다른 파일로 내 로그인 ID를 인쇄 할 수 있습니까?
은 시스템을 기록하고 프로그램을 수정 한 모든 세부 정보 (로그인 ID)를 인쇄 할 수 있음을 의미합니다.
가정 내 시스템 로그인 ID는 tom2deu입니다. 파이썬 프로그램이 하나 있습니다. 이제이 Python 프로그램을 수정하려고합니다.로그인 입력
내 질문
우리는 seprate 메모장 또는 다른 파일로 내 로그인 ID를 인쇄 할 수 있습니까?
은 시스템을 기록하고 프로그램을 수정 한 모든 세부 정보 (로그인 ID)를 인쇄 할 수 있음을 의미합니다.
는 ..
수입 OS
인쇄 os.environ [ '사용자 이름']
또는
os.getlogin()
다음 변수 사용에 저장 이러한 시도 파일을 텍스트 파일로 저장하는 처리.
나는 당신이 해결하려고하는 것이 확실하지 않지만 trac k 소스 파일을 변경하면 Subversion과 같은 버전 제어 시스템을 사용해야합니다. 요약하면 소스 파일의 모든 변경 사항을 추적하고 충돌을 관리합니다 (두 사람이 동시에 파일을 변경하려고하는 경우).
일반적인 해결책을 원한다면 리눅스 커널의 inotify
기능 (커널 버전> = 2.6.13)에 대한 래퍼 인 pyinotify
을 사용해야합니다. 이 파일 시스템을 사용하여 예를 들어 파일 시스템과 같은 특정 이벤트를 등록 할 수 있습니다. 다음 코드 :
from pyinotify import WatchManager, ThreadedNotifier, ProcessEvent, EventsCodes
file_to_monitor = "/tmp/test.py"
class FSEventHook(ProcessEvent):
def __init__(self, watch_path):
ProcessEvent.__init__(self)
wm = WatchManager()
wm.add_watch(watch_path, EventsCodes.ALL_FLAGS['IN_CLOSE_WRITE'], rec=False)
self.notifier = ThreadedNotifier(wm, self)
def start(self):
self.notifier.start()
def process_IN_CLOSE_WRITE(self, event):
if os.path.isfile(event.pathname):
print "%s changed"%pathname
fshook = FSEventHook(file_to_monitor)
fshook.start()
다음과 같은 이벤트가 지원됩니다 IN_MOVED_FROM, IN_CREATE, IN_ONESHOT, IN_IGNORED, IN_ONLYDIR, IN_Q_OVERFLOW, IN_MOVED_TO, IN_DELETE, IN_DONT_FOLLOW, IN_CLOSE_WRITE, IN_MOVE_SELF, IN_ACCESS, IN_MODIFY, IN_MASK_ADD, IN_CLOSE_NOWRITE, IN_ISDIR, IN_UNMOUNT, IN_DELETE_SELF, ALL_EVENTS, IN_OPEN, IN_ATTRIB
합니다. 각각에 대해 자체적으로 process_XXX()
메소드를 구현해야하며, 이벤트가 트리거되면 다시 호출됩니다.
누가 파일을 변경했는지 추적 할 수 있는지 묻는 것입니다. 그리고 이것은 파이썬 질문이 아니라 운영체제에 관한 질문입니다. 파일을 변경 한 사람을 추적하려면 감사 시스템을 설치해야합니다. Linux를 사용하는 경우,이 정보를 추적하도록 구성 할 수있는 감사 서브 시스템이 있다고 생각합니다.
나는 그것이 그가 묻는 것이라고 생각하지 않는다. 나는 그가 문제의 파일을 누가 마지막으로 편집했는지 알고 싶어한다고 생각한다. – scvalex
그리고 내가 아는 한 그는 그렇게 할 수 없습니다. 그는 파일을 만든 사람과 파일에 대한 쓰기 권한이있는 사람을 찾을 수 있지만 마지막으로 저장 한 사람은 알 수 없습니다. – scvalex