Linux 시스템을 통해 Windows 공유 폴더를 열어줍니다
문제
Ubuntu에서 Python 2.5를 사용하고 있으며 같은 네트워크에 기계가 있습니다. machine1
. 폴더가 공유됩니다.
해당 시스템의 특정 폴더에서 파일을 가져 오는 방법은 무엇입니까?
나는 성공하지 않고 시도했다.
urllib.urlopen('\\machine1\folder\file.txt')
해결책
Linux는 Utiliy라고 불렀습니다 smbmount
, 이것은 내가 믿는 패키지 smbutils에서 찾을 수 있습니다.
이 유틸리티는 로컬 컴퓨터의 디렉토리에 Windows 공유를 제공하는 명령 줄 유틸리티입니다.
smbmount는 루트로 실행되는 유틸리티를 믿기 때문에 당신에게 적합한 지 여부는 모릅니다. 어쩌면 사용자로 사용할 수 있습니다.
Linux 시스템에서 기본적으로 공유를 마운트하여 로컬 파일로 파일에 액세스하거나 Python 스크립트 내에서 Exec 또는 그와 비슷한 것을 사용하여 SMBMount / SMBUMOUNT를 수행 할 수 있습니다.
mkdir WindowsShare # Do this only once
smbmount \\server\share /home/me/WindowsShare -ousername=...,password=...
ls /home/me/WindowsShare
smbumount /home/me/WindowsShare
사용자 이름과 비밀번호는 일부 보안을 위해 파일로 작성할 수 있습니다. 을 체크하다 남자 페이지.
당신이 무언가가 필요하면 완전히 파이썬을 살펴보십시오 pysmb. Google에 대한 용어는 Python, SMB, CIF입니다.
다른 팁
urllib
SMB 프로토콜을 이해하지 못합니다. 사용해야합니다 gio
파일을 검색하려면 pygobject를 통해.
폴더가 공유되면 ~/.gvfs에 장착해야한다고 생각합니다. 아마도 당신은 단순히 사용할 수 있습니다 open
~/.gvfs에서 볼 수 있듯이 경로에서.
기본 파일 브라우저를 찾아야합니다.
그런 다음 프로세스를 실행하고 원하는 폴더를 인수 (smb : // machine1/폴더/)로 전달할 수 있습니다.
예를 들어 창문에서는 다음과 같습니다.
execl("explorer.exe", "D:")
파일 브라우저 (대부분 노틸러스)로가는 경로를 찾으십시오.
그래서:
execl("/bin/nautilus", "smb://.../")
일부 정보 execl