2015-09-21 16 views
7

Chcę utworzyć nowy plik w Pythonie dla że używam polecenia mknod, ale coraz błąd jako:Python moduł „os” nie ma atrybutu „mknod”

os.mknod(); 
AttributeError: module 'os' has no attribute 'mknod' 

używam okna i inne atrybuty niż 'mknod' działają.

+2

Wydruk 'os .__ file__' – vaultah

+1

Aby rozwinąć komentarz vaultahs: Możesz mieć własny plik o nazwie' os.py', który zacienia wbudowany pakiet. – Matthias

+0

Hmm - zgadnij - czy jesteś w systemie Windows ...? Ponieważ mówisz o wywołaniach "os", system operacyjny, nad którym pracujesz, jest niezbędną informacją ... –

Odpowiedz

3

os oferuje funkcje, które są ściśle związane z systemem operacyjnym, którego używasz. Jeśli dostęp do większości innych atrybutów jest możliwy z poziomu os (co oznacza, że ​​nie masz pliku os.py w bieżącym katalogu maskującym standardowy moduł), to AttributeError przekaże 99% nieobsługiwanej funkcji w systemie operacyjnym.

Tak właśnie jest w przypadku systemu os.mknod w systemie Windows. Tworzenie nazwanych potoków w Windows ma, o ile rozumiem, very different semantics.

Tak czy inaczej, jeśli próbujesz użyć mknod do utworzenia nazwanych potoków, prawdopodobnie lepiej byłoby użyć mkfifo() (ponownie, obsługiwany jest tylko Unix). Jeśli używasz go do tworzenia zwykłych plików, nie używaj open(), który jest przenośny.

Powiązane problemy