Pytanie w sprawie python, windows – Jak mogę tworzyć pliki w systemie Windows z osadzonymi ukośnikami, używając Pythona?

4

Po półgodzinnym przeszukiwaniu Google jestem zaskoczony, że nie mogę znaleźć żadnego sposobu na utworzenie pliku w systemie Windows z ukośnikami w nazwie. Klient żąda, aby nazwy plików miały następującą strukturę:

04/28/2012 04:07 PM 6,781 12Q1_C125_G_04-17.pdf

Do tej pory nie znalazłem sposobu na kodowanie ukośników, więc stają się częścią nazwy pliku zamiast ścieżki.

Jakieś sugestie?

Czy mógłbyś podsumować to, co próbowałeś dotychczas, więc nie będziemy go ponownie czytać? Silas Ray

Twoja odpowiedź

3   odpowiedź
7

które widziałem, nie pozwalają tworzyć plików z ukośnikami. Nawet jeśli byłoby to w jakiś sposób możliwe, dzięki magii deepshit, prawdopodobnie spieprzy prawie wszystkie aplikacje, w tym Eksplorator Windows.

można jednak nadużywać możliwości Unicode systemu Windows.

Tworzenie pliku za pomocą (nie jest to ukośnik, jest to „ukośnik dzielący”, patrzhttp://www.fileformat.info/info/unicode/char/2215/index.htm ) w jego nazwie działa na przykład dobrze.

cóż ... jestem hackerem;) ch3ka
Działa również dla OSX John
Kreatywne myslenie. Junuxx
13

Ukośnik jest jednym ze znaków, które nie mogą być używane w nazwach plików systemu Windows, patrzhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

Poniższe podstawowe zasady umożliwiają aplikacjom tworzenie i przetwarzanie poprawnych nazw plików i katalogów, niezależnie od systemu plików:

Użyj kropki, aby oddzielić nazwę pliku podstawowego od rozszerzenia w nazwie katalogu lub pliku.

Użyj odwrotnego ukośnika (\) aby oddzielić składniki ścieżki. Backslash dzieli nazwę pliku od ścieżki do niego i jedną nazwę katalogu z innej nazwy katalogu w ścieżce. Nie można użyć odwrotnego ukośnika w nazwie rzeczywistego pliku lub katalogu, ponieważ jest to znak zastrzeżony, który rozdziela nazwy na komponenty.

Użyj odwrotnego ukośnika zgodnie z wymaganiami jako części nazw woluminów, na przykład „C:” w „C: plik ścieżki” lub „serwer udostępnij” w „serwer udostępnij plik ścieżki” dla Universal Nazwy konwencji nazewnictwa (UNC). Aby uzyskać więcej informacji o nazwach UNC, zobacz sekcję Ograniczenie maksymalnej długości ścieżki.

Nie zakładaj wrażliwości na wielkość liter. Na przykład, uważaj nazwy OSCAR, Oscar i oscar za takie same, nawet jeśli niektóre systemy plików (takie jak system plików zgodny z POSIX) mogą uważać je za różne. Zauważ, że NTFS obsługuje semantykę POSIX dla rozróżniania wielkości liter, ale nie jest to zachowanie domyślne. Aby uzyskać więcej informacji, zobacz CreateFile.

Oznaczniki objętości (litery napędów) są podobnie nieuwzględnione. Na przykład „D:” i „d:” odnoszą się do tego samego woluminu.

Użyj dowolnego znaku w bieżącej stronie kodowej dla nazwy, w tym znaków Unicode i znaków w rozszerzonym zestawie znaków (128–255), z wyjątkiem następujących:

    The following reserved characters:
        < (less than)
        > (greater than)
        : (colon)
        " (double quote)
        / (forward slash)
        \ (backslash)
        | (vertical bar or pipe)
        ? (question mark)
        * (asterisk)

Wartość całkowita zero, czasami określana jako znak ASCII NUL.

Znaki, których reprezentacje liczb całkowitych mieszczą się w zakresie od 1 do 31, z wyjątkiem alternatywnych strumieni danych, w których te znaki są dozwolone. Aby uzyskać więcej informacji na temat strumieni plików, zobacz Strumienie plików.

Dowolny inny znak, na który nie pozwala docelowy system plików.

Albo ktoś próbuje napisać kolejny fragment kodu, który próbuje manipulować twoimi plikami i uderza głową w ścianę przez 4 godziny, ponieważ używasz całkowicie krzykliwego niestandardowego mechanizmu. Klient dostaje to, czego chce klient, chyba że klient tego chce. Jeśli nie możesz przekonać swojego klienta, że ​​zły pomysł to zły pomysł, to tak naprawdę nie wykonujesz swojej pracy. Silas Ray
@ ch3ka Używanie symbolu, który jest wizualnie nie do odróżnienia od nieprawidłowego charakteru, który spowoduje różnego rodzaju problemy w całym miejscu, jest zaproszeniem do bólu głowy i katastrofy. Silas Ray
@ sr2222 na pewno. ale klienci otrzymują to, czego chcą klienci. Pierwsza zasada freelancingu. i hej, toPrace. ch3ka
... działa, dopóki ktoś nie przeniesie tego pliku na maszynę FAT32, która używa strony kodowej OEM dla nazw plików i rzeczy wysadzonych ... bgporter

Powiązane pytania