С файлы: C# и .NET | Работа с файлами. File и FileInfo

Содержание

File Класс (System.IO) | Microsoft Docs

В следующем примере показано, как использовать File класс для проверки существования файла, и, в зависимости от результата, создать новый файл и выполнить запись в него или открыть существующий файл и выполнить чтение из него.The following example demonstrates how to use the File class to check whether a file exists, and depending on the result, either create a new file and write to it, or open the existing file and read from it. Перед выполнением кода создайте c:\temp папку.Before running the code, create a c:\temp folder.

Используйте File класс для стандартных операций, таких как копирование, перемещение, переименование, создание, открытие, удаление и добавление в один файл за раз.Use the File class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to a single file at a time. Можно также использовать File класс для получения и задания атрибутов файла или сведений, DateTime относящихся к созданию, доступу и записи файла.You can also use the File class to get and set file attributes or DateTime information related to the creation, access, and writing of a file. Если требуется выполнить операции с несколькими файлами, см. раздел Directory.GetFiles или DirectoryInfo.GetFiles .If you want to perform operations on multiple files, see Directory.GetFiles or DirectoryInfo.GetFiles.

Многие из File методов возвращают другие типы ввода-вывода при создании или открытии файлов.Many of the File methods return other I/O types when you create or open files. Эти другие типы можно использовать для дальнейшего управления файлом.You can use these other types to further manipulate a file. Дополнительные сведения см. в разделе определенные File элементы, такие как OpenText , CreateText или Create .For more information, see specific File members such as OpenText, CreateText, or Create.

Поскольку все File методы являются статическими, использование File метода вместо соответствующего метода экземпляра может оказаться более эффективным, FileInfo Если требуется выполнить только одно действие.Because all File methods are static, it might be more efficient to use a File method rather than a corresponding FileInfo instance method if you want to perform only one action. FileДля всех методов требуется путь к обрабатываемому файлу.All File methods require the path to the file that you are manipulating.

Статические методы File класса выполняют проверку безопасности всех методов.The static methods of the File class perform security checks on all methods. Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования соответствующего метода экземпляра FileInfo , так как проверка безопасности не всегда будет требоваться.If you are going to reuse an object several times, consider using the corresponding instance method of FileInfo instead, because the security check will not always be necessary.

По умолчанию всем пользователям предоставляется полный доступ на чтение и запись к новым файлам.By default, full read/write access to new files is granted to all users.

В следующей таблице описаны перечисления, используемые для настройки поведения различных File методов.The following table describes the enumerations that are used to customize the behavior of various File methods.

В членах, принимающих путь, путь может ссылаться на файл или только на каталог.In members that accept a path, the path can refer to a file or just a directory. Указанный путь может также ссылаться на относительный путь или путь в формате UNC для имени сервера и общего ресурса.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Например, все следующие допустимые пути:For example, all the following are acceptable paths:

AppendAllLines(String, IEnumerable<String>)

Добавляет строки в файл, затем закрывает файл.Appends lines to a file, and then closes the file. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл.If the specified file does not exist, this method creates a file, writes the specified lines to the file, and then closes the file.

AppendAllLines(String, IEnumerable<String>, Encoding)

Добавляет строки в файл, используя заданную кодировку, затем закрывает файл.Appends lines to a file by using a specified encoding, and then closes the file. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл.If the specified file does not exist, this method creates a file, writes the specified lines to the file, and then closes the file.

AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Асинхронно добавляет строки в файл, затем закрывает файл.Asynchronously appends lines to a file, and then closes the file. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл.If the specified file does not exist, this method creates a file, writes the specified lines to the file, and then closes the file.

AppendAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Асинхронно добавляет строки в файл, используя заданную кодировку, затем закрывает файл.Asynchronously appends lines to a file by using a specified encoding, and then closes the file. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл.If the specified file does not exist, this method creates a file, writes the specified lines to the file, and then closes the file.

AppendAllText(String, String)

Открывает файл, добавляет в него указанную строку и затем закрывает файл.Opens a file, appends the specified string to the file, and then closes the file. Если файл не существует, этот метод создает файл, записывает в него указанную строку и затем закрывает файл.If the file does not exist, this method creates a file, writes the specified string to the file, then closes the file.

AppendAllText(String, String, Encoding)

Добавляет указанную строку в файл в указанной кодировке, создавая файл, если он не существует.Appends the specified string to the file using the specified encoding, creating the file if it does not already exist.

AppendAllTextAsync(String, String, CancellationToken)

Асинхронно открывает или создает файл, если он еще не существует, добавляет указанную строку в файл, а затем закрывает файл.Asynchronously opens a file or creates a file if it does not already exist, appends the specified string to the file, and then closes the file.

AppendAllTextAsync(String, String, Encoding, CancellationToken)

Асинхронно открывает или создает файл, если он еще не существует, добавляет указанную строку в файл в указанной кодировке, а затем закрывает файл.Asynchronously opens a file or creates the file if it does not already exist, appends the specified string to the file using the specified encoding, and then closes the file.

AppendText(String)

Создает объект StreamWriter, добавляющий текст с кодировкой UTF-8 в существующий файл, или в новый файл, если указанный файл не существует.Creates a StreamWriter that appends UTF-8 encoded text to an existing file, or to a new file if the specified file does not exist.

Copy(String, String)

Копирует существующий файл в новый файл.Copies an existing file to a new file. Перезапись файла с тем же именем не разрешена.Overwriting a file of the same name is not allowed.

Copy(String, String, Boolean)

Копирует существующий файл в новый файл.Copies an existing file to a new file. Перезапись файла с тем же именем разрешена.Overwriting a file of the same name is allowed.

Create(String)

Создает или перезаписывает файл в указанном пути.Creates or overwrites a file in the specified path.

Create(String, Int32)

Создает или перезаписывает файл по заданному пути с указанием размер буфера.Creates or overwrites a file in the specified path, specifying a buffer size.

Create(String, Int32, FileOptions)

Создает или перезаписывает файл по заданному пути с указанием размера буфера и параметров, которые описывают, как создавать или перезаписывать файл.Creates or overwrites a file in the specified path, specifying a buffer size and options that describe how to create or overwrite the file.

Create(String, Int32, FileOptions, FileSecurity)

Создает или перезаписывает файл по заданному пути с указанием размера буфера и параметров, которые описывают, как создавать или перезаписывать файл. Также указывается значение, определяющее контроль доступа и безопасность аудита для файла.Creates or overwrites a file in the specified path, specifying a buffer size, options that describe how to create or overwrite the file, and a value that determines the access control and audit security for the file.

CreateText(String)

Создается или открывается файл для записи текста в кодировке UTF-8.Creates or opens a file for writing UTF-8 encoded text. Если файл уже существует, его содержимое перезаписывается.If the file already exists, its contents are overwritten.

Decrypt(String)

Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt(String).Decrypts a file that was encrypted by the current account using the Encrypt(String) method.

Delete(String)

Удаляет указанный файл.Deletes the specified file.

Encrypt(String)

Шифрует файл таким образом, чтобы его можно было расшифровать только с помощью учетной записи, которая использовалась для шифрования.Encrypts a file so that only the account used to encrypt the file can decrypt it.

Exists(String)

Определяет, существует ли заданный файл.Determines whether the specified file exists.

GetAccessControl(String)

Получает объект FileSecurity, который инкапсулирует записи списка ACL для заданного файла.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for a specified file.

GetAccessControl(String, AccessControlSections)

Получает объект FileSecurity, инкапсулирующий записи списка ACL определенного типа для конкретного файла.Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for a particular file.

GetAttributes(String)

Получает значение FileAttributes для файла в пути.Gets the FileAttributes of the file on the path.

GetCreationTime(String)

Возвращает дату и время создания заданного файла или каталога.Returns the creation date and time of the specified file or directory.

GetCreationTimeUtc(String)

Возвращает дату и время создания заданного файла или каталога в формате общего скоординированного времени (UTC).Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory.

GetLastAccessTime(String)

Возвращает время и дату последнего обращения к указанному файлу или каталогу.Returns the date and time the specified file or directory was last accessed.

GetLastAccessTimeUtc(String)

Возвращает дату и время последнего доступа к заданному файлу или каталогу в формате всемирного координированного времени (UTC).Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed.

GetLastWriteTime(String)

Возвращает время и дату последней операции записи в указанный файл или каталог.Returns the date and time the specified file or directory was last written to.

GetLastWriteTimeUtc(String)

Возвращает дату и время последней операции записи в заданный файл или каталог в формате всемирного координированного времени (UTC).Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to.

Move(String, String)

Перемещает заданный файл в новое местоположение и разрешает переименование файла.Moves a specified file to a new location, providing the option to specify a new file name.

Move(String, String, Boolean)

Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и перезаписи конечного файла, если он уже существует.Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

Open(String, FileMode)

Открывает объект FileStream по указанному пути с доступом для чтения и записи без совместного доступа.Opens a FileStream on the specified path with read/write access with no sharing.

Open(String, FileMode, FileAccess)

Открывает FileStream в заданном пути с заданным режимом и доступом без совместного доступа.Opens a FileStream on the specified path, with the specified mode and access with no sharing.

Open(String, FileMode, FileAccess, FileShare)

Открывает FileStream в заданном пути, с заданным режимом доступа для чтения, записи или чтения и записи и с заданным параметром совместного использования.Opens a FileStream on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option.

OpenRead(String)

Открывает для чтения существующий файл.Opens an existing file for reading.

OpenText(String)

Открывает для чтения существующий файл, содержащий текст в кодировке UTF-8.Opens an existing UTF-8 encoded text file for reading.

OpenWrite(String)

Открывает существующий файл или создает новый файл для записи.Opens an existing file or creates a new file for writing.

ReadAllBytes(String)

Открывает двоичный файл, считывает содержимое файла в массив байтов и затем закрывает файл.Opens a binary file, reads the contents of the file into a byte array, and then closes the file.

ReadAllBytesAsync(String, CancellationToken)

Асинхронно открывает двоичный файл, считывает содержимое файла в массив байтов и затем закрывает файл.Asynchronously opens a binary file, reads the contents of the file into a byte array, and then closes the file.

ReadAllLines(String)

Открывает текстовый файл, считывает все строки файла и затем закрывает файл.Opens a text file, reads all lines of the file, and then closes the file.

ReadAllLines(String, Encoding)

Открывает файл, считывает все строки файла с заданной кодировкой и затем закрывает файл.Opens a file, reads all lines of the file with the specified encoding, and then closes the file.

ReadAllLinesAsync(String, CancellationToken)

Асинхронно открывает текстовый файл, считывает все строки файла и затем закрывает файл.Asynchronously opens a text file, reads all lines of the file, and then closes the file.

ReadAllLinesAsync(String, Encoding, CancellationToken)

Асинхронно открывает текстовый файл, считывает все строки файла с заданной кодировкой и затем закрывает файл.Asynchronously opens a text file, reads all lines of the file with the specified encoding, and then closes the file.

ReadAllText(String)

Открывает текстовый файл, считывает весь текст файла и затем закрывает файл.Opens a text file, reads all the text in the file, and then closes the file.

ReadAllText(String, Encoding)

Открывает файл, считывает весь текст файла с заданной кодировкой и затем закрывает файл.Opens a file, reads all text in the file with the specified encoding, and then closes the file.

ReadAllTextAsync(String, CancellationToken)

Асинхронно открывает текстовый файл, считывает весь текст файла и затем закрывает файл.Asynchronously opens a text file, reads all the text in the file, and then closes the file.

ReadAllTextAsync(String, Encoding, CancellationToken)

Асинхронно открывает текстовый файл, считывает весь текст из файла с заданной кодировкой и затем закрывает файл.Asynchronously opens a text file, reads all text in the file with the specified encoding, and then closes the file.

ReadLines(String)

Считывает строки файла.Reads the lines of a file.

ReadLines(String, Encoding)

Считывает строки файла с заданной кодировкой.Read the lines of a file that has a specified encoding.

Replace(String, String, String)

Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный файл и создавая резервную копию замененного файла.Replaces the contents of a specified file with the contents of another file, deleting the original file, and creating a backup of the replaced file.

Replace(String, String, String, Boolean)

Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный файл и создавая резервную копию замененного файла, и при необходимости игнорирует ошибки слияния.Replaces the contents of a specified file with the contents of another file, deleting the original file, and creating a backup of the replaced file and optionally ignores merge errors.

SetAccessControl(String, FileSecurity)

Применяет записи списка управления доступом (ACL), описанные объектом FileSecurity, к заданному файлу.Applies access control list (ACL) entries described by a FileSecurity object to the specified file.

SetAttributes(String, FileAttributes)

Устанавливает заданные атрибуты FileAttributes файла по заданному пути.Sets the specified FileAttributes of the file on the specified path.

SetCreationTime(String, DateTime)

Устанавливает дату и время создания файла.Sets the date and time the file was created.

SetCreationTimeUtc(String, DateTime)

Устанавливает дату и время создания файла, представленные в формате общего скоординированного времени (UTC).Sets the date and time, in coordinated universal time (UTC), that the file was created.

SetLastAccessTime(String, DateTime)

Устанавливаются дата и время последнего доступа к заданному файлу.Sets the date and time the specified file was last accessed.

SetLastAccessTimeUtc(String, DateTime)

Устанавливает дату и время последнего доступа к заданному файлу в формате всемирного координированного времени (UTC).Sets the date and time, in coordinated universal time (UTC), that the specified file was last accessed.

SetLastWriteTime(String, DateTime)

Устанавливаются дата и время последней операции записи в заданный файл.Sets the date and time that the specified file was last written to.

SetLastWriteTimeUtc(String, DateTime)

Устанавливает дату и время последней операции записи в заданный файл в формате всемирного координированного времени (UTC).Sets the date and time, in coordinated universal time (UTC), that the specified file was last written to.

WriteAllBytes(String, Byte[])

Создает новый файл, записывает в него указанный массив байтов и затем закрывает файл.Creates a new file, writes the specified byte array to the file, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

WriteAllBytesAsync(String, Byte[], CancellationToken)

Асинхронно создает новый файл, записывает в него указанный массив байтов и затем закрывает файл.Asynchronously creates a new file, writes the specified byte array to the file, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.Creates a new file, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл.Creates a new file by using the specified encoding, writes a collection of strings to the file, and then closes the file.

WriteAllLines(String, String[])

Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.Creates a new file, write the specified string array to the file, and then closes the file.

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл.Creates a new file, writes the specified string array to the file by using the specified encoding, and then closes the file.

WriteAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Асинхронно создает новый файл, записывает в него указанные строки и затем закрывает файл.Asynchronously creates a new file, writes the specified lines to the file, and then closes the file.

WriteAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Асинхронно создает новый файл, записывает указанные строки в этот файл, используя заданную кодировку, затем закрывает файл.Asynchronously creates a new file, write the specified lines to the file by using the specified encoding, and then closes the file.

WriteAllText(String, String)

Создает новый файл, записывает в него указанную строку и затем закрывает файл.Creates a new file, writes the specified string to the file, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

WriteAllText(String, String, Encoding)

Создает новый файл, записывает указанную строку в этот файл, используя заданную кодировку, и затем закрывает файл.Creates a new file, writes the specified string to the file using the specified encoding, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

WriteAllTextAsync(String, String, CancellationToken)

Асинхронно создает новый файл, записывает в него указанную строку и затем закрывает файл.Asynchronously creates a new file, writes the specified string to the file, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

WriteAllTextAsync(String, String, Encoding, CancellationToken)

Асинхронно создает новый файл, записывает указанную строку в этот файл, используя заданную кодировку, и затем закрывает файл.Asynchronously creates a new file, writes the specified string to the file using the specified encoding, and then closes the file. Если целевой файл уже существует, он будет переопределен.If the target file already exists, it is overwritten.

Файлы. Работа с файлами. | Python 3 для начинающих и чайников

В данной статье мы рассмотрим встроенные средства python для работы с файлами: открытие / закрытие, чтение и запись.

Итак, начнем. Прежде, чем работать с файлом, его надо открыть. С этим замечательно справится встроенная функция open:

f = open('text.txt', 'r')

У функции open много параметров, они указаны в статье «Встроенные функции», нам пока важны 3 аргумента: первый, это имя файла. Путь к файлу может быть относительным или абсолютным. Второй аргумент, это режим, в котором мы будем открывать файл.

РежимОбозначение
‘r’открытие на чтение (является значением по умолчанию).
‘w’открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
‘x’открытие на запись, если файла не существует, иначе исключение.
‘a’открытие на дозапись, информация добавляется в конец файла.
‘b’открытие в двоичном режиме.
‘t’открытие в текстовом режиме (является значением по умолчанию).
‘+’открытие на чтение и запись

Режимы могут быть объединены, то есть, к примеру, ‘rb’ — чтение в двоичном режиме. По умолчанию режим равен ‘rt’.

И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.

Чтение из файла

Открыли мы файл, а теперь мы хотим прочитать из него информацию. Для этого есть несколько способов, но большого интереса заслуживают лишь два из них.

Первый — метод read, читающий весь файл целиком, если был вызван без аргументов, и n символов, если был вызван с аргументом (целым числом n).

>>> f = open('text.txt')
>>> f.read(1)
'H'
>>> f.read()
'ello world!\nThe end.\n\n'

Ещё один способ сделать это — прочитать файл построчно, воспользовавшись циклом for:

>>> f = open('text.txt')
>>> for line in f:
...     line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'

Запись в файл

Теперь рассмотрим запись в файл. Попробуем записать в файл вот такой вот список:

>>> l = [str(i)+str(i-1) for i in range(20)]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']

Откроем файл на запись:

>>> f = open('text.txt', 'w')

Запись в файл осуществляется с помощью метода write:

>>> for index in l:
...     f.write(index + '\n')
...
4
3
3
3
3

Для тех, кто не понял, что это за цифры, поясню: метод write возвращает число записанных символов.

После окончания работы с файлом его обязательно нужно закрыть с помощью метода close:

>>> f.close()

Теперь попробуем воссоздать этот список из получившегося файла. Откроем файл на чтение (надеюсь, вы поняли, как это сделать?), и прочитаем строки.

>>> f = open('text.txt', 'r')
>>> l = [line.strip() for line in f]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
>>> f.close()

Мы получили тот же список, что и был. В более сложных случаях (словарях, вложенных кортежей и т. д.) алгоритм записи придумать сложнее. Но это и не нужно. В python уже давно придумали средства, такие как pickle или json, позволяющие сохранять в файле сложные структуры.

Операции с файлами и папками в Total Commander

Total Commander – это одна из немногих программ, которая обладает мощным функционалом, и при этом не содержит ничего лишнего. Лаконичный интерфейс, две больших рабочих области и удобные кнопки для выполнения пользовательских команд дают возможность эффективно управлять файлами, приложив минимум усилий.

Несмотря на простой интерфейс, файловый менеджер включает в себя множество встроенных инструментов, с которыми довольно сложно разобраться, не зная ничего о программе. Предлагаем рассмотреть основные вопросы об операциях с файлами, которые возникают у пользователей, только начавших пользоваться Total Commander.

Как создать папку в Total Commander

Для выполнения часто используемых команд в программе предусмотрены функциональные клавиши, одного нажатия на них достаточно, чтобы переместить файл, создать папку или переименовать ее. Зайдите в файловый менеджер, запустив ярлык на рабочем столе или через меню Пуск.

Сразу под рабочими областями, как вам известно, располагаются горячие клавиши, при помощи которых можно быстро выполнить стандартные действия с файлами. Чтобы создать новую папку на вашем компьютере нужно нажать функциональную кнопку «F7» — Создать каталог в программе, либо нажать аналогичную клавишу на клавиатуре.

Как в Total Commander создать текстовый файл

Менеджер файлов очень удобно использовать для управления файлами и папками, благодаря функциональным клавишам и большим рабочим областям, по которым можно быстро перемещаться. Для создания текстового файла в TC можно воспользоваться двумя способами:

  • Кликните правой кнопкой мыши по пустому месту в каталоге и нажмите «Новый». Введите имя файла и нажмите «Ок».
  • Можно воспользоваться сочетанием клавиш Shift+F4. В открывшемся окне укажите в графе «Имя каталога» название и расширение файла. После создания, текстовый файл откроется в окне редактора.

Как посмотреть размер папок в Total Commander

Если вам нужно посмотреть размеры папки или файла через обычный проводник Windows, то приходится выполнить как минимум три шага. Выделить правой кнопкой мыши папку, в открывшемся окне выбрать «Свойства». Только после выполнения всех этих действий вы можете узнать размеры каталога.

В Total Commander посмотреть размер папки гораздо проще. На рабочей области в окне каталогов нажмите на нужную папку, после этого нажмите пробел, и напротив названия каталога будет указан размер.

Как выделять файлы в Total Commander

Чтобы выделить файлы в программе, можно воспользоваться цифровым блоком клавиатуры, инструментальной панелью TC или правой кнопкой мыши. Откройте файловый менеджер, перейдите в каталог, где находится нужный вам файл или папка, и кликните на нем правой кнопкой мыши. Если вам более привычно пользоваться для выделения левой кнопкой, можно изменить команду в настройках программы. Зайдите в пункт «Настройки» TC на верхней панели инструментов, выберите в списке «Основные операции» и поставьте флажок напротив строки «Левой кнопкой, как в Windows».

Когда нужно выделить несколько файлов, воспользуйтесь опцией «Выделение», расположенной над рабочими областями, для выделения укажите «Выделить группу файлов» или примените сочетание клавиш (Shift,Num и +). Чтобы выделить все файлы каталога в пункте «Выделение» выберите «Выделить все» или примените Ctrl+.

Total Commander как копировать файлы

Выделить и скопировать файл в файловом менеджере можно всего за несколько шагов. Выберите нужную папку или файл на рабочей области слева при помощи цифрового блока или функции «Выделение». На рабочей области справа найдите диск или папку, в которую вы хотите копировать файл. Для копирования остается нажать кнопку «F5» и подтвердить путь копирования в диалоговом окне.

Вы можете выделить все нужные файлы и папки при помощи действий, описанных выше и скопировать несколько единиц сразу. Также можно копировать только файлы с определенным расширением, названием и т.д. Если вам нужно скопировать файл, но под другим именем, нужно помимо клавиши F5 нажать Shift.

Total Commander: как перемещать файлы

Перемещение каталогов (папок) и файлов осуществляется по аналогии с копированием. Выделите нужный файл и укажите, в какое место нужно переместить его. Нажмите под рабочей областью функциональную клавишу F6, и файл будет перемещен.

В диалоговом окне нужно будет подтвердить действия, и правильность указанного пути сохранения.Для переименования папки с последующим изменением имени нажмите клавишу Shift в сочетании с F6.

Как удалить дубликаты файлов в Total Commander

Для того чтобы удалить дубликаты файлов в TC, нужно найти их через файловый менеджер, с использованием шаблонов и масок. Поиск дублирующих файлов осуществляется через сочетание клавиш Alt+F7 или инструментальную панель программы. Чтобы вызвать окно поиска через меню, откройте пункт «Команды» в меню, и нажмите «Поиск файлов».

Перед вами откроется окно с параметрами поиска, во вкладке «Дополнительно» можно указать критерии поиска дубликатов, например, по имени или по содержимому. В главном окне указывается расширение требуемых файлов, место поиска и названия, если есть. Результаты сканирования будут отображены в окне каталогов, однако удаление нужно будет произвести вручную.

Как переименовать группу файлов в Total Commander

Переименование файлов осуществляется через команду инструментального меню, которое находится над рабочей областью или с помощью сочетания клавиш. Для смены имени целой группы файлов, выделите нужные при помощи действий, описанных выше, и затем в меню «Файлы» нажмите пункт «Групповое переименование». Аналогичное действие можно осуществить, нажав Ctrl+M.

Перед вами откроется диалоговое окно с параметрами смены имени. Указав маску имени файла, вы можете изменить, например, названия изображений с памятного события. Чтобы имена не повторялись, достаточно нажать на пункт «Счетчик». Имена файлов можно изменять полностью на желаемые, изменять только часть названия, или указать в нем дату создания.

Как изменить атрибуты файла в Total Commander

Изменение атрибутов файлов может потребоваться для защиты важных документов от удаления, например, или для запрета перемещения. Чтобы сменить атрибуты зайдите в меню «Файлы» и выберите пункт «Изменить атрибуты».

Программа предложит назначить один из следующих атрибутов файлу: «Скрытый», «Архивный», «Системный» и «Только для чтения». Если вы не хотите, что файл случайно был изменен или перемещен, укажите «Только для чтения». Менять атрибуты возможно для группы файлов, если они были перед изменением выделены.

Как изменить дату файла в Total Commander

Для изменения даты файла или папки в файловом менеджере, выберите в меню «Файлы» и «Изменить атрибуты файла». Укажите нужную дату и подтвердите свое действие. Во вкладке изменение атрибутов можно поменять не только дату изменения файла, но и дату создания, модификации и т.д. Нажмите «Добавить атрибут» и внесите изменения.

Total Commander как изменить расширение файла

Расширение файла можно изменить несколькими способами:

  • Удерживайте правой кнопкой мыши файл, и когда появится контекстное меню, выберите «Переименовать». В окне переименования можно сменить как имя файла, так и его расширение.
  • Сочетание клавиш Shift+F6 позволяет изменить расширение файла и его название. После смены расширения не забудьте нажать Enter, иначе изменения не вступят в силу.
  • Если левой кнопкой мыши два раза с минимальным перерывом нажать на файл, будет выделено название и расширение файла, которое можно будет изменить.

Как восстановить удаленные файлы Total Commander

Файловый менеджер не является программой, которая удаляет файлы без возможности восстановления. Таким образом, для восстановления нужных файлов или папок, зайдите в Корзину, выделите удаленные документы и нажмите «Восстановить».

Специальных средств, для восстановления именно TC удаленных файлов без использования сторонних плагинов не существует, нужно использовать проводник Windows.

Как собрать разбитый файл в Total Commander

Используя встроенные инструменты TC, можно разделить файл на несколько частей или собрать воедино разрозненные части. Выделите с помощью стандартных действий нужные файлы, например, части одного документа, который был разделен на несколько фрагментов.

Зайдите через меню программы в пункт «Файлы» и выберите «Собрать файлы». В диалоговом окне нужно будет указать путь сохранения, где будет собран разбитый файл. Файл может быть собран в один, если у него одинаковое название и разные порядковые номера.

Как отобразить скрытые файлы в Total Commander

Иногда необходимо показать скрытые или системные файлы, для выполнения определенных действий. Если нужно поработать со скрытыми файлами, упорядочить их, либо переместить, нужно воспользоваться следующими рекомендациями:

  • Зайдите на панели инструментов во вкладку «Конфигурация».
  • Выберите пункт «Настройка» и укажите «Содержимое панелей».
  • Выберите из списка «Содержимое панелей» и поставьте флажок напротив «Показывать скрытые/системные файлы».

Обратите внимание, если вы не знаете, для чего нужно отображать скрытые файлы, не меняйте настройки, так как случайное удаление или изменение системных файлов может вызвать неполадки в системе.

Файлы. Работа с файлами. — Питошка


В данной статье мы рассмотрим встроенные средства python для работы с файлами: открытие / закрытие, чтение и запись.

Итак, начнем. Прежде, чем работать с файлом, его надо открыть. С этим замечательно справится встроенная функция open:

f = open('text.txt', 'r')

У функции open много параметров, они указаны в статье «Встроенные функции«, нам пока важны 3 аргумента: первый, это имя файла. Путь к файлу может быть относительным или абсолютным. Второй аргумент, это режим, в котором мы будем открывать файл.

РежимОбозначение
‘r’открытие на чтение (является значением по умолчанию).
‘w’открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
‘x’открытие на запись, если файла не существует, иначе исключение.
‘a’открытие на дозапись, информация добавляется в конец файла.
‘b’открытие в двоичном режиме.
‘t’открытие в текстовом режиме (является значением по умолчанию).
‘+’открытие на чтение и запись

Режимы могут быть объединены, то есть, к примеру, ‘rb’ — чтение в двоичном режиме. По умолчанию режим равен ‘rt’.

И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.

Чтение из файла

Открыли мы файл, а теперь мы хотим прочитать из него информацию. Для этого есть несколько способов, но большого интереса заслуживают лишь два из них.

Первый — метод read, читающий весь файл целиком, если был вызван без аргументов, и n символов, если был вызван с аргументом (целым числом n).

>>> f = open('text.txt')
>>> f.read(1)
'H'
>>> f.read()
'ello world!\nThe end.\n\n'

Ещё один способ сделать это — прочитать файл построчно, воспользовавшись циклом for:

>>> f = open('text.txt')
>>> for line in f:
...     line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'

Запись в файл

Теперь рассмотрим запись в файл. Попробуем записать в файл вот такой вот список:

>>> l = [str(i)+str(i-1) for i in range(20)]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']

Откроем файл на запись:

>>> f = open('text.txt', 'w')

Запись в файл осуществляется с помощью метода write:

>>> for index in l:
...     f.write(index + '\n')
...
4
3
3
3
3

Для тех, кто не понял, что это за цифры, поясню: метод write возвращает число записанных символов.

После окончания работы с файлом его обязательно нужно закрыть с помощью метода close:

>>> f.close()

Теперь попробуем воссоздать этот список из получившегося файла. Откроем файл на чтение (надеюсь, вы поняли, как это сделать?), и прочитаем строки.

>>> f = open('text.txt', 'r')
>>> l = [line.strip() for line in f]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
>>> f.close()

Мы получили тот же список, что и был. В более сложных случаях (словарях, вложенных кортежей и т. д.) алгоритм записи придумать сложнее. Но это и не нужно. В python уже давно придумали средства, такие как pickle или json, позволяющие сохранять в файле сложные структуры.

Не удается найти страницу | Autodesk Knowledge Network

(* {{l10n_strings.REQUIRED_FIELD}})

{{l10n_strings.CREATE_NEW_COLLECTION}}*

{{l10n_strings.ADD_COLLECTION_DESCRIPTION}}

{{l10n_strings.COLLECTION_DESCRIPTION}} {{addToCollection.description.length}}/500 {{l10n_strings.TAGS}} {{$item}} {{l10n_strings.PRODUCTS}} {{l10n_strings.DRAG_TEXT}}  

{{l10n_strings.DRAG_TEXT_HELP}}

{{l10n_strings.LANGUAGE}} {{$select.selected.display}}

{{article.content_lang.display}}

{{l10n_strings.AUTHOR}}  

{{l10n_strings.AUTHOR_TOOLTIP_TEXT}}

{{$select.selected.display}} {{l10n_strings.CREATE_AND_ADD_TO_COLLECTION_MODAL_BUTTON}} {{l10n_strings.CREATE_A_COLLECTION_ERROR}}

Добавление файлов, изображений, аудио и видео


Добавление файлов, изображений, аудио и видео

На странице Материалы курса можно искать файлы в облачном хранилище или на своем компьютере. В некоторых случаях учащиеся выбирают имя файла, чтобы загрузить и открыть его. Если браузер позволяет, некоторые медиафайлы открываются в новом окне или вкладке. Когда вы добавляете содержимое, учащиеся получают уведомления в своих лентах активности.

В большинстве браузеров можно выбрать, куда будут загружаться файлы из курсов. Например, в браузере Chrome выберите пункт Настройки > Дополнительные > Скачанные файлы. Вы можете выбрать расположение для загрузки файлов по умолчанию или указать, чтобы браузер всегда спрашивал, куда нужно сохранить файл. В Safari есть такие же функции. Нажмите Настройки > Общие > Расположение для загрузки файлов. Чтобы узнать, как изменить настройки загрузки файлов в других браузерах, воспользуйтесь поиском в Интернете.

Поддерживаемые типы файлов: DOC, DOCX, HTM, HTML, MP4, MPG, PDF, PPT, PPTX, XLS, XLSX, RTF, TXT, ZIP и большинство форматов изображений.

Отправить файлы. Нажмите «+», чтобы отправить файлы. В меню нажмите Выгрузить и выберите файлы на компьютере. Файлы появятся в списке содержимого.

Откройте меню файла, чтобы изменить имя файла, сопоставить его с целями, заменить файл или добавить описание. Вы также можете развернуть или создать папку или учебный модуль, а затем выгрузить файлы.

Если в вашем учреждении используется Blackboard Ally, вы можете использовать это средство, чтобы обеспечить доступность материалов курса для всех учащихся. Рядом с файлами отображаются индикаторы и альтернативные форматы. Дополнительные сведения о Blackboard Ally см. ниже в этом разделе.

Добавление файлов из облачного хранилища. Можно добавить в курс файлы из облачного хранилища, например OneDrive® или Google Диска™. Вы можете выбрать несколько файлов из облачного хранилища, чтобы добавить их на свою страницу Материалы курса одним действием. Добавляемые файлы — это копии. При внесении изменений в файл в облачном хранилище вам нужно отправить новую копию в свой курс.

Подробнее об облачном хранилище

Загрузка файлов из коллекции материалов. Если файлы уже сохранены в коллекции материалов, можно создать на них ссылку в курсе.

Копирование и вставка ссылок из строки URL-адреса в изображения, PDF-файлы или другие файлы в коллекции материалов будут работать неправильно. Эти URL-адреса являются временными и позже будут отключены.

Подробнее о загрузке файлов из Content Collection

Можно выбрать информацию, которая будет доступна учащимся. Все содержимое скрыто от учащихся, пока вы не решите его отобразить. Для каждого элемента указано, скрыт ли он от учащихся. Чтобы изменить отображение, выберите его.

С помощью клавиатуры переключитесь на список видимости и нажмите клавишу ВВОД, чтобы открыть меню. С помощью клавиш Alt/Option + стрелки вверх и вниз выберите нужный параметр.

Добавление целей и стандартов. С помощью целей ваше учреждение и вы можете оценивать достижения учащихся в рамках программ и учебных планов. После успешной отправки файла в свой курс вы можете сопоставить его с одной или несколькими целями. Откройте меню в строке файла и выберите пункт Изменить. На панели выберите команду Сопоставить с целями для поиска доступных целей, которые нужно сопоставить с файлом.

Учащиеся не видят цели, сопоставленные с файлом.

Легко переупорядочивайте, изменяйте и удаляйте содержимое. Наведите указатель на элемент, чтобы отобразился значок Переместить, и перетащите элемент на новое место в списке содержимого. Откройте меню и выберите Изменить или Удалить. Например, на панели можно изменить имя файла, ввести описание, которое отображается вместе с файлом на странице Материалы курса, или заменить файл.

С помощью клавиатуры можно перетащить элемент на новое место, переместить элемент в развернутую папку и переместить папку в другую развернутую папку.

  1. С помощью клавиши Tab перейдите к значку перемещения элемента.
  2. Для активации режима перемещения нажмите клавишу ВВОД.
  3. Выберите нужное расположение с помощью клавиш со стрелками.
  4. Нажмите клавишу ВВОД, чтобы перетащить элемент на новую позицию.

Файлы ZIP

На странице Материалы курса можно отправить пакет файлов со сжатием, который также называют файлом ZIP. Учащиеся скачивают ZIP-файл на компьютер и распаковывают его, чтобы просмотреть содержимое. В меню нажмите Выгрузить и выберите файл на компьютере.


Как поставить пароль на папку • Блокировка папок и файлов в Windows

Когда компьютер используется несколькими пользователями, иногда требуется защита файлов и папок паролем. Для этого есть несколько способов в зависимости от того, какая версия Microsoft® Windows® установлена на вашем компьютере. Как узнать версию вашей системы Windows, читайте здесь.

Если ПК пользуются несколько человек, рекомендуется настроить учетную запись для каждого пользователя. Таким образом, каждый пользователь будет иметь доступ к нужным программам и данным.

Как установить пароль на папкy

Запаролить папку значит, что для просмотра списка документов в папке потребуется ввести пароль. При этом вы можете поставить пароль и на отдельные файлы и документы внутри защищенной или незащищенной папки. Эта процедура одинакова для обоих случаев.

Пароль на папку Windows 7

  1. В Проводнике Windows найдите папку, которую необходимо защитить с помощью пароля. Кликните по ней правой кнопкой мыши.
  2. В меню выберите Свойства. В отобразившемся диалоговом окне щелкните вкладку Общие.
  3. Нажмите кнопку Другие, затем выберите Шифровать содержимое для защиты данных. Нажмите ОК. Будут использоваться ваши имя пользователя и пароль Windows.
  4. Дважды кликните по папке с паролем, чтобы убедиться в наличии доступа к ней.  

Как поставить пароль на папку Windows 10 и Windows 8

В Windows 8 и Windows 10 нет функции для защиты папки паролем. Потребуется скачать стороннюю программу для создания паролей на папки или воспользоваться zip-папкой. Если вы решили обратиться к сторонней программе, скачивать ее следует только из надежного источника.

Zip-папка

Защитить с помощью пароля zip-файл — это хорошее решение, если невозможно поставить пароль на папку в вашей версии Windows. Для начала создайте zip-папку с файлами, на которые желаете установить пароль.

  1. В Проводнике Windows выделите и щелкните правой кнопкой мыши файлы, которые вы хотите поместить в zip-файл.
  2. Выберите  Отправить, затем — Сжатая Zip-папка. Следуйте указаниям программы, задайте имя папки и сохраните ее.
  3. Дважды щелкните zip-файл, затем выберите Файл и Добавить пароль пароль для папки.
  4. Заполните необходимую информацию, затем щелкните Применить.

Как скрыть папку

Если не удается запаролить папку или файл, их можно скрыть. Они не будут отображаться в списке каталогов, пока не снят флажок рядом с параметром Не показывать скрытые файлы, папки или диски.

Windows 7, 8 и 10

  1. Щелкните правой кнопкой мыши файл или папку, которые необходимо скрыть. Выберите Свойства.
  2. Щелкните вкладку Общие в разделе Атрибуты, выберите Скрытый.
  3. Нажмите Применить.

Если файл или папка продолжают отображаться в каталоге, необходимо активировать другой параметр.

  1. В Проводнике Windows нажмите вкладку Файл.
  2. Выберите Параметры, затем перейдите на вкладку Вид.
  3. В разделе Скрытые файлы и папки выберите Не показывать скрытые файлы, папки и диски.

Чтобы скрыть файлы или папку, выполните приведенные выше инструкции еще раз, но выберите Показывать скрытые файлы, папки и диски.

Вывод

Несмотря на то, что Microsoft убрала функцию защиты папки паролем, для хранения конфиденциальной информации можно по-прежнему использовать защищенную паролем zip-папку или скрыть файлы и папки, чтобы они не отображались в списке каталогов.

«Доступ запрещен» или другие ошибки при доступе или работе с файлами и папками в Windows

Причина Проблема, препятствующая доступу к файлам и папкам или работе с ними, может возникать по одной или нескольким из следующих причин:

  • Владелец папки изменился

  • У вас нет соответствующих прав

  • Файл зашифрован

  • Файл поврежден

  • Профиль пользователя поврежден

Разрешение

Windows 8

У вас может не быть права собственности на файл или папку Если вы недавно обновили свой компьютер до Windows 8 с более ранней версии Windows, некоторые данные вашей учетной записи могли измениться.Таким образом, вы больше не можете владеть некоторыми файлами или папками. Возможно, вы сможете решить эту проблему, восстановив право собственности на файлы и папки.

Чтобы стать владельцем файла или папки, выполните следующие действия:

  1. Нажмите и удерживайте папку, владельцем которой вы хотите стать, затем нажмите Свойства . (Если вы используете мышь, щелкните папку правой кнопкой мыши и выберите Свойства .)

  2. Коснитесь или щелкните вкладку Security , коснитесь или щелкните Advanced , затем коснитесь или щелкните Изменить .Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение.

  3. Введите имя человека, которому вы хотите передать право собственности, а затем щелкните Проверить имена .

    Примечание Отображается имя учетной записи человека, которому вы назначаете право собственности.

  4. Щелкните ОК .

  5. Если вы хотите, чтобы этот человек был владельцем файлов и подпапок, содержащихся в этой папке, установите флажок Заменить владельца подконтейнеров и объектов .

  6. Щелкните ОК .

Возможно, у вас нет соответствующих разрешений Проблемы, возникающие при попытке доступа к файлам и папкам, могут быть связаны с разрешениями.Разрешения — это правила, определяющие, можете ли вы получать доступ к файлам и папкам или изменять их. Чтобы проверить права доступа к файлу или папке, выполните следующие действия:

  1. Нажмите и удерживайте или щелкните правой кнопкой мыши файл или папку, а затем щелкните Свойства .

  2. Коснитесь или щелкните вкладку Безопасность .

  3. В группе Группа или имена пользователей коснитесь или щелкните свое имя, чтобы просмотреть имеющиеся у вас разрешения.

Чтобы открыть файл, у вас должно быть разрешение на чтение. Чтобы изменить права доступа к файлу или папке, выполните следующие действия.

Важно. Вы должны войти в систему как администратор, чтобы изменить права доступа к файлам и папкам.

  1. Нажмите и удерживайте или щелкните правой кнопкой мыши файл или папку, а затем коснитесь или щелкните Свойства .

  2. Коснитесь или щелкните вкладку Безопасность .

  3. В группе Группа или имена пользователей коснитесь или щелкните свое имя, чтобы просмотреть имеющиеся у вас разрешения.

  4. Коснитесь или щелкните Изменить , коснитесь или щелкните свое имя, установите флажки для необходимых разрешений, а затем щелкните ОК .

Дополнительные сведения о разрешениях см. В разделе Что такое разрешения ?.

Файл или папка могут быть зашифрованы. Шифрование помогает защитить файлы и папки от нежелательного доступа. Вы не можете открыть зашифрованный файл или папку без сертификата, который использовался для их шифрования. Чтобы определить, зашифрован ли файл или папка, выполните следующие действия:

  1. Нажмите и удерживайте или щелкните правой кнопкой мыши файл или папку, а затем коснитесь или щелкните Свойства .

  2. Коснитесь или щелкните вкладку Общие , а затем коснитесь или щелкните Дополнительно .

Если установлен флажок Зашифровать содержимое для защиты данных , у вас должен быть сертификат, который использовался для шифрования файла или папки, чтобы его можно было открыть. В этой ситуации вы должны получить сертификат от человека, создавшего или зашифровавшего файл или папку, или попросить этого человека расшифровать файл или папку.

Возможно, файл или папка повреждены. Файлы могут быть повреждены по нескольким причинам.Самая распространенная причина в том, что у вас открыт файл, когда ваш компьютер выходит из строя или теряет питание. Большинство поврежденных файлов невозможно восстановить. В этой ситуации следует либо удалить файл, либо восстановить файл из резервной копии.

Дополнительную информацию о поврежденных файлах и способах их исправления см. В разделе Поврежденные файлы: часто задаваемые вопросы.

Ваш локальный профиль пользователя может быть поврежден Иногда Windows может неправильно считывать ваш локальный профиль пользователя.Это может помешать вам получить доступ к файлам и папкам. В этой ситуации вам, возможно, придется использовать новый локальный профиль пользователя. Чтобы создать профиль, вы должны сначала создать локальную учетную запись пользователя. Когда создается новая учетная запись, создается и профиль. Чтобы создать локальную учетную запись пользователя, выполните следующие действия:

  1. Проведите пальцем от правого края экрана, нажмите Настройки , а затем нажмите Изменить настройки ПК . (Если вы используете мышь, наведите указатель в правый верхний угол экрана, переместите указатель мыши вниз, щелкните Settings , а затем щелкните Change PC settings )

  2. На панели навигации коснитесь или щелкните Пользователи .

  3. Коснитесь или щелкните Добавить пользователя , затем коснитесь или щелкните Могут ли они войти в систему без учетной записи Microsoft ?

  4. Коснитесь или щелкните Локальная учетная запись .

  5. Введите имя вашей новой учетной записи.

  6. Если вы хотите использовать пароль, введите и подтвердите пароль, который вы хотите использовать.Если вы решите не использовать пароль, коснитесь или щелкните Далее без ввода пароля.

  7. Коснитесь или щелкните Готово .

Windows 7

У вас может не быть права собственности на файл или папку Если вы недавно обновили свой компьютер до Windows 7 с более ранней версии Windows, некоторые данные вашей учетной записи могли измениться. Таким образом, вы больше не можете владеть некоторыми файлами или папками.Возможно, вы сможете решить эту проблему, восстановив право собственности на файлы и папки.

Чтобы стать владельцем файла или папки, выполните следующие действия:

  1. Щелкните правой кнопкой мыши папку, владельцем которой вы хотите стать, а затем щелкните Свойства .

  2. Щелкните вкладку Security , щелкните Advanced , а затем щелкните вкладку Owner .

  3. Щелкните Изменить . Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение.

  4. Щелкните имя человека, которому вы хотите передать право собственности.

  5. Если вы хотите, чтобы этот человек был владельцем файлов и подпапок в этой папке, установите флажок Заменить владельца подконтейнеров и объектов .

  6. Щелкните ОК .

Возможно, у вас нет соответствующих разрешений Проблемы, возникающие при попытке доступа к файлам и папкам, могут быть связаны с разрешениями. Разрешения — это правила, определяющие, можете ли вы получать доступ к файлам и папкам или изменять их. Чтобы проверить права доступа к файлу или папке, выполните следующие действия:

  1. Нажмите и удерживайте или щелкните правой кнопкой мыши файл или папку, а затем щелкните Свойства .

  2. Коснитесь или щелкните вкладку Безопасность .

  3. В группе Группа или имена пользователей коснитесь или щелкните свое имя, чтобы просмотреть имеющиеся у вас разрешения.

Чтобы открыть файл, у вас должно быть разрешение на чтение. Чтобы изменить разрешения для файла или папки, выполните следующие действия.

Важно. Вы должны войти в систему как администратор, чтобы изменить права доступа к файлам и папкам.

  1. Щелкните файл или папку правой кнопкой мыши и выберите «Свойства».

  2. Щелкните вкладку Безопасность.

  3. В разделе «Группы или пользователи» щелкните свое имя, чтобы просмотреть имеющиеся у вас разрешения.

  4. Щелкните «Изменить», щелкните свое имя, установите флажки для необходимых разрешений и щелкните «ОК».

Дополнительные сведения о разрешениях см. В разделе Что такое разрешения ?.

Файл или папка могут быть зашифрованы. Шифрование помогает защитить файлы и папки от нежелательного доступа. Вы не можете открыть зашифрованный файл или папку без сертификата, который использовался для их шифрования. Чтобы определить, зашифрован ли файл или папка, выполните следующие действия:

  1. Щелкните файл правой кнопкой мыши и выберите «Свойства».

  2. Щелкните вкладку Общие, а затем щелкните Дополнительно.

Если установлен флажок Зашифровать содержимое для защиты данных , у вас должен быть сертификат, который использовался для шифрования файла или папки, чтобы его можно было открыть.

Вы должны получить сертификат от человека, создавшего файл. Дополнительные сведения см. В разделе Импорт или экспорт сертификатов и закрытых ключей.

Возможно, файл или папка повреждены. Файлы могут быть повреждены по нескольким причинам. Самая распространенная причина в том, что у вас открыт файл, когда ваш компьютер выходит из строя или теряет питание. Большинство поврежденных файлов невозможно восстановить. В этой ситуации следует либо удалить файл, либо восстановить файл из резервной копии.

Дополнительную информацию о поврежденных файлах и способах их исправления см. В разделе Поврежденные файлы: часто задаваемые вопросы.

Ваш профиль пользователя может быть поврежден Иногда Windows может неправильно считывать ваш локальный профиль пользователя.Это может помешать вам получить доступ к файлам и папкам. В этой ситуации вам, возможно, придется использовать новый локальный профиль пользователя. Чтобы создать профиль, вы должны сначала создать локальную учетную запись пользователя. Когда создается новая учетная запись, создается и профиль.

Дополнительные сведения о создании профилей пользователей см. В разделе Исправление поврежденного профиля пользователя. После создания нового профиля пользователя вы можете скопировать существующие файлы пользователей в новый профиль, чтобы иметь к ним доступ.

Работа с файлами и каталогами — Введение в командную строку для Genomics

Обзор

Обучение: 30 мин.
Упражнения: 15 мин.

Вопросы
  • Как я могу просматривать и искать содержимое файлов?

  • Как я могу создавать, копировать и удалять файлы и каталоги?

  • Как я могу контролировать, кто имеет разрешение на изменение файла?

  • Как мне повторить недавно использованные команды?

Цели
  • Просмотр, поиск, копирование, перемещение и переименование файлов.Создайте новые каталоги.

  • Используйте подстановочные знаки ( * ) для выполнения операций с несколькими файлами.

  • Сделать файл доступным только для чтения.

  • Используйте команду history для просмотра и повторения недавно использованных команд.

Работа с файлами

Наш набор данных: файлы FASTQ

Теперь, когда мы знаем, как перемещаться по нашей структуре каталогов, давайте начать работать с нашими файлами секвенирования.Мы провели эксперимент по секвенированию и есть два файла результатов, которые хранятся в нашем каталоге untrimmed_fastq .

Подстановочные знаки

Перейдите в каталог untrimmed_fastq :

  $ cd ~ / shell_data / untrimmed_fastq
  

Нас интересуют файлы FASTQ в этом каталоге. Мы можем перечислить все файлы с расширением .fastq с помощью команды:

  SRR097977.fastq SRR098026.fastq
  

Символ * — это особый тип символа, называемый подстановочным знаком, который может использоваться для представления любого количества символов любого типа.Таким образом, * .fastq соответствует каждому файлу, который заканчивается на .fastq .

Эта команда:

перечисляет только файл, который заканчивается на 977.fastq .

Эта команда:

  /usr/bin/amuFormat.sh /usr/bin/gettext.sh /usr/bin/gvmap.sh
  

Список всех файлов в / usr / bin , которые заканчиваются символами .sh . Обратите внимание, что вывод отображает полных путей к файлам, поскольку каждый результат начинается с /.

Упражнение

Выполняйте каждую из следующих задач из текущего каталога с помощью одного ls команда для каждого:

  1. Перечислить все файлы в / usr / bin , которые начинаются с буквы «c».
  2. Перечислить все файлы в / usr / bin , содержащие букву «а».
  3. Перечислить все файлы в / usr / bin , которые заканчиваются буквой «о».

Бонус: перечислите все файлы в / usr / bin , которые содержат букву «а» или буква «с».

Подсказка: вопрос о бонусе требует подстановочного знака Unix, о котором мы не говорили все же. Попробуйте поискать в Интернете информацию о подстановочных знаках Unix, чтобы найти что нужно для решения бонусной задачи.

Решение

  1. л.с / usr / bin / c *
  2. лс / usr / bin / * a *
  3. ls / usr / bin / * o
    Бонус: ls / usr / bin / * [ac] *

Упражнение

echo — это встроенная команда оболочки, которая записывает свои аргументы в виде строки текста в стандартный вывод.Команду echo также можно использовать с символами сопоставления с образцом, такими как подстановочные знаки. Здесь мы будем использовать команду echo , чтобы увидеть, как подстановочный знак интерпретируется оболочкой.

  SRR097977.fastq SRR098026.fastq
  

* расширяется, чтобы включить любой файл, который заканчивается на .fastq . Мы видим, что на выходе echo * .fastq такой же, как ls * .fastq .

Как бы выглядел результат, если бы можно было сопоставить подстановочный знак , а не ? Сравните выходы echo * .missing и ls * .missing .

Решение

  ls: нет доступа к '* .missing': нет такого файла или каталога
  

История команд

Если вы хотите повторить команду, которую вы недавно запускали, вы можете получить доступ к предыдущей команды с помощью стрелки вверх на клавиатуре, чтобы вернуться к самому последнему команда.Точно так же стрелка вниз перемещает вас вперед в истории команд.

Еще несколько полезных ярлыков:

  • Ctrl + C отменит команду, которую вы пишете, и даст вам свежая подсказка.
  • Ctrl + R выполнит обратный поиск по истории ваших команд. Этот очень полезно.
  • Ctrl + L или команда clear очистит экран.

Вы также можете просмотреть свои недавние команды с помощью команды history , введя:

, чтобы увидеть нумерованный список последних команд.Вы можете повторно использовать одну из этих команд непосредственно указав номер этой команды.

Например, если ваша история выглядела так:

  259 лс *
260 лс /usr/bin/*.sh
261 лс * R1 * fastq
  

, то вы можете повторить команду № 260, введя:

Тип ! (восклицательный знак), а затем номер команды из вашей истории. Вы будете рады, что узнали это, когда вам нужно будет повторно запустить очень сложные команды. Для получения дополнительной информации о расширенном использовании истории прочтите раздел 9.3 из Руководство по Bash.

Упражнение

Найдите в истории номер строки для команды, в которой перечислены все файлы .sh. файлы в / usr / bin . Повторите эту команду.

Решение

Первый тип история . Тогда используйте ! , за которым следует номер строки для повторного выполнения этой команды.

Изучение файлов

Теперь мы знаем, как переключать каталоги, запускать программы и смотреть на содержимое каталогов, но как мы смотрим на содержимое файлов?

Один из способов проверить файл — распечатать все содержимое с помощью программы cat .

Введите следующую команду из каталога untrimmed_fastq :

Это распечатает все содержимое SRR098026.fastq на экран.

Упражнение

  1. Распечатайте содержимое файла ~ / shell_data / untrimmed_fastq / SRR097977.fastq . Какая последняя строка файла?
  2. Из вашего домашнего каталога, не меняя каталоги, используйте одну короткую команду, чтобы распечатать содержимое всех файлов в каталог ~ / shell_data / untrimmed_fastq .

Решение

  1. Последняя строка файла: C: CCC :: 1970CC <8? 6A: C28C <608 '&&&,' $ .
  2. кот ~ / shell_data / untrimmed_fastq / *

cat - потрясающая программа, но когда файл действительно большой, он может раздражает использование. Для этого пригодится программа, минус дело. минус открывает файл только для чтения и позволяет перемещаться по нему.Команды навигации идентичны программе man .

Введите следующую команду:

Некоторые команды навигации в меньше :

ключ действие
Пространство идти вперед
б ​​ вернуться назад
г перейти в начало
G идти до конца
кв выйти

минус также дает возможность поиска в файлах.Использовать Клавиша «/» для начала поиска. Введите желаемое слово для поиска и нажмите введите . Экран перейдет к следующему месту, где это слово найдено.

Ярлык: Если вы нажмете «/», затем «Enter», минус повторится предыдущий поиск. минус поисковых запросов из текущего местоположения и продвигается вперед. Прокрутите вверх пару строк на своем терминале, чтобы проверить вы находитесь в начале файла. Обратите внимание: если вы находитесь в конце файла и выполняете поиск для последовательности «CAA» минус не найдет.Вам либо нужно перейти в начало файла (набрав g ) и повторите поиск, используя / или вы можно использовать? для поиска в обратном направлении так же, как вы использовали ранее /.

Например, давайте поищем последовательность TTTTT в нашем файле. Вы можете видеть, что мы переходим прямо к этой последовательности, как она выглядит, и где он находится в файле. Если вы продолжите вводить / и нажмете return, вы переместитесь вперед к следующему экземпляру этого мотива последовательности.Если вместо этого набрать ? и ударил return, вы будете искать в обратном направлении и перемещаться вверх по файлу к предыдущим примерам этого мотива.

Упражнение

Каковы следующие три нуклеотида (символа) после первого экземпляра указанной выше последовательности?

Решение

CAC

Помните, программа man фактически использует минус внутри и поэтому использует те же команды, поэтому вы можете искать в документации также используя «/»!

Есть еще один способ просмотра файлов, и в данном случае просто посмотрите на часть из них.Это может быть особенно полезно, если мы просто хотим чтобы увидеть начало или конец файла или посмотреть, как он отформатирован.

Команды: голова и хвост , и они позволяют вам смотреть на начало и конец файла соответственно.

  @ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
NNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNN
+ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!
@ SRR098026.2 HWUSI-EAS1599_1: 2: 1: 0: 312 длина = 35
NNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNN
+ SRR098026.2 HWUSI-EAS1599_1: 2: 1: 0: 312 длина = 35
!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!
@ SRR098026.3 HWUSI-EAS1599_1: 2: 1: 0: 570 длина = 35
NNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNN
  
  + SRR098026.247 HWUSI-EAS1599_1: 2: 1: 2: 1311 длина = 35
#! ##! ################# !!!!!!! ######
@ SRR098026.248 HWUSI-EAS1599_1: 2: 1: 2: 118 длина = 35
GNTGNGGTCATCATACGCGCCCNNNNNNNGGCATG
+ SRR098026.248 HWUSI-EAS1599_1: 2: 1: 2: 118 длина = 35
B!;?! A = 5922: ########## !!!!!!! ######
@ SRR098026.249 HWUSI-EAS1599_1: 2: 1: 2: 1057 длина = 35
CNCTNTATGCGTACGGCAGTGANNNNNNNGGAGAT
+ SRR098026.249 HWUSI-EAS1599_1: 2: 1: 2: 1057 длина = 35
A! @B! BBB @ ABAB ######### !!!!!!! ######
  

Параметр -n любой из этих команд может использоваться для печати первые или последние n строки файла.

  $ голова -n 1 SRR098026.fastq
  
  @ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
  
  $ хвост -n 1 SRR098026.fastq
  
  A! @B! BBB @ ABAB ######### !!!!!!! ######
  

Подробная информация о формате FASTQ

Хотя это выглядит сложным (и так оно и есть), понять формат fastq с небольшим декодированием.Некоторые правила о формате включают…

Линия Описание
1 Всегда начинается с «@», а затем информация о прочитанном
2 Фактическая последовательность ДНК
3 Всегда начинается со знака «+», а иногда и той же информации в строке 1
4 Имеет строку символов, представляющих оценки качества; должно содержать то же количество символов, что и строка 2

Мы можем просмотреть первое полное чтение в одном из файлов в нашем наборе данных, используя головку для просмотра первые четыре строки.

  $ голова -n 4 SRR098026.fastq
  
  @ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
NNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNN
+ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!
  

Все нуклеотиды в этом чтении, кроме одного, неизвестны ( N ). Это довольно плохое чтение!

Строка 4 показывает качество каждого считанного нуклеотида. Качество интерпретируется как вероятность неправильного вызова базы (например,г. 1 из 10) или, что то же самое, базовый вызов точность (например, 90%). Чтобы можно было сопоставить каждый отдельный нуклеотид с его качеством оценка, числовая оценка преобразуется в код, в котором каждый отдельный символ представляет собой числовую оценку качества отдельного нуклеотида. Например, в строке выше строка показателя качества:

  !!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!
  

Символ # и каждый из символов ! символа представляют закодированное качество для индивидуальный нуклеотид.Числовое значение, присвоенное каждому из этих символов, зависит от платформа секвенирования, сгенерировавшая чтения. Машина секвенирования, используемая для генерации наших данных использует стандартное кодирование партитуры PHRED качества Сэнгера, Illumina версии 1.8 и выше. Каждому персонажу присваивается оценка качества от 0 до 42, как показано в таблице ниже.

  Кодировка качества:! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJK
                  | | | | |
Оценка качества: 0........ 10 ........ 20 ........ 30 ........ 40 ..
  

Каждый показатель качества представляет собой вероятность того, что соответствующий вызов нуклеотида неверно. Этот показатель качества основан на логарифмической шкале, поэтому оценка качества 10 отражает базовая точность вызова 90%, но оценка качества 20 отражает точность базового вызова 99%. Эти значения вероятности являются результатом базового алгоритма вызова и зависят от того, как было захвачено много сигналов для включения базы.

Оглядываясь назад на наше чтение:

  @ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
NNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNN
+ SRR098026.1 HWUSI-EAS1599_1: 2: 1: 0: 968 длина = 35
!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!
  

, теперь мы можем видеть, что качество каждого из N s равно 0, а качество только вызов нуклеотидов ( C ) также очень плохой ( # = оценка качества 2). Это действительно очень плохое чтение.

Создание, перемещение, копирование и удаление

Теперь мы можем перемещаться по файловой структуре, просматривать файлы и искать файлы.Но что, если мы хотим скопировать файлы или переместить их вокруг или избавиться от них? В большинстве случаев вы можете выполнять подобные манипуляции с файлами без командной строки, но будут некоторые случаи (например, когда вы работаете с удаленным компьютером, как мы на этом уроке), когда он будет невозможно. Вы также обнаружите, что работаете с сотнями файлов и хотите проделать аналогичные манипуляции со всеми этих файлов. В таких случаях гораздо быстрее выполнять эти операции из командной строки.

Копирование файлов

При работе с вычислительными данными важно хранить безопасную копию этих данных, которую нельзя случайно перезаписать или удалить. Для этого урока нашими необработанными данными являются наши файлы FASTQ. Мы не хотим случайно изменить исходные файлы, поэтому сделаем их копии и измените права доступа к файлам, чтобы мы могли читать из файлов, но не записывать в них.

Во-первых, давайте сделаем копию одного из наших файлов FASTQ с помощью команды cp .

Перейдите в каталог shell_data / untrimmed_fastq и введите:

  $ cp SRR098026.fastq SRR098026-copy.fastq
$ ls -F
  
  SRR097977.fastq SRR098026-copy.fastq SRR098026.fastq
  

Теперь у нас есть две копии файла SRR098026.fastq , одна из которых называется SRR098026-copy.fastq . Мы переместим этот файл в новый каталог называется резервное копирование , где мы будем хранить наши файлы данных резервных копий.

Создание каталогов

Команда mkdir используется для создания каталога. Введите мкдир затем пробел, затем имя каталога, который вы хотите создать:

Перемещение / переименование

Теперь мы можем переместить наш файл резервной копии в этот каталог. Мы можем перемещайте файлы с помощью команды mv :

  $ mv SRR098026-copy.fastq резервное копирование
$ ls резервная копия
  

Команда mv также используется для переименования файлов.Давайте переименуем этот файл, чтобы было понятно, что это резервная копия:

  $ резервное копирование cd
$ mv SRR098026-copy.fastq SRR098026-backup.fastq
$ ls
  

Права доступа к файлу

Мы сделали резервную копию нашего файла, но то, что у нас есть две копии, не делает нас безопасными. Мы все еще можем случайно удалить или перезапишите обе копии. Чтобы случайно не испортить этот файл резервной копии, мы собираемся изменить права доступа к файлу, чтобы что нам разрешено только читать (т.е. просматривать) файл, а не записывать в него (т.е. вносить новые изменения).

Просмотрите текущие разрешения для файла с помощью флага -l (длинный) для команды ls :

  -rw-r - r-- 1 dcuser dcuser 43332 15 ноября 23:02 SRR098026-backup.fastq
  

Первая часть вывода для флага -l дает вам информацию о текущих разрешениях файла. Есть десять слотов в список разрешений. Первый символ в этом списке связан с типом файла, а не с разрешениями, поэтому пока мы его игнорируем.Следующие три символы относятся к разрешениям, которые есть у владельца файла, следующие три относятся к разрешениям для членов группы, а последний три символа указывают, что другие пользователи вне вашей группы могут делать с файлом. Мы собираемся сконцентрироваться на трех позициях которые имеют дело с вашими разрешениями (как владелец файла).

Здесь три позиции, относящиеся к владельцу файла: rw- . r означает, что у вас есть разрешение на чтение файла, w указывает, что у вас есть разрешение на запись (т.е. внесите изменения в) файл, а третья позиция - , что означает, что вы у вас нет разрешения на использование способности, закодированной в этом пространстве (это пространство, где хранится x или исполняемая способность, мы поговорим об этом подробнее на следующем уроке).

Наша цель на данный момент - изменить права доступа к этому файлу, чтобы у вас больше не было прав w или прав записи. Мы можем сделать это, используя команду chmod (изменить режим) и вычитая ( - ) разрешение на запись -w .

  $ chmod -w SRR098026-backup.fastq
$ ls -l
  
  -r - r - r-- 1 dcuser dcuser 43332 15 ноября 23:02 SRR098026-backup.fastq
  

Удаление

Чтобы доказать себе, что у вас больше нет возможности изменять этот файл, попробуйте удалить его с помощью команды rm :

  $ rm SRR098026-backup.fastq
  

Вас спросят, хотите ли вы изменить права доступа к файлу:

  rm: удалить обычный файл, защищенный от записи «SRR098026-backup.fastq ’?
  

Вы должны ввести n для №. Если вы введете n (нет), файл не будет удален. Если вы введете и , вы удалите файл. Это дает нам дополнительную мера безопасности, так как между нами и удалением наших файлов данных есть еще один шаг.

Важно : Команда rm безвозвратно удаляет файл. Будьте осторожны с этой командой. Это не просто аккуратно поместите файлы в корзину. Они действительно ушли.

По умолчанию rm не удаляет каталоги. Вы можете сказать RM на удалите каталог с помощью параметра -r (рекурсивный). Удалим каталог резервных копий мы только что сделали.

Введите следующую команду:

Это приведет к удалению не только каталога, но и всех файлов в каталоге. Если в каталоге есть файлы, защищенные от записи, вас спросят, хотите ли вы изменить настройки разрешений.

Упражнение

Начиная с каталога shell_data / untrimmed_fastq / , выполните следующие действия:

  1. Убедитесь, что вы удалили каталог резервных копий и все файлы, которые в нем содержатся.
  2. Создайте резервную копию каждого из ваших файлов FASTQ, используя cp . (Примечание: вам нужно будет сделать это отдельно для каждого из двух файлов FASTQ. Мы не еще научился, как это сделать с подстановочным знаком.)
  3. Используйте подстановочный знак, чтобы переместить все файлы резервных копий в новый каталог резервных копий.
  4. Измените права доступа ко всем файлам резервных копий, чтобы они были защищены от записи.

Решение

  1. rm -r резервное копирование
  2. ср SRR098026.fastq SRR098026-backup.fastq и cp SRR097977.fastq SRR097977-backup.fastq
  3. mkdir backup и mv * -backup.fastq backup
  4. chmod -w backup / * - backup.fastq
    Всегда полезно проверять свою работу с помощью ls -l backup . Вы должны увидеть что-то вроде:
  -r - r - r-- 1 dcuser dcuser 47552 15 ноября 23:06 SRR097977-backup.fastq
-r - r - r-- 1 dcuser dcuser 43332 15 ноября 23:06 SRR098026-backup.fastq
  

Ключевые моменты

  • Вы можете просмотреть содержимое файла, используя минус , cat , head или tail .

  • Команды cp , mv и mkdir полезны для управления существующими файлами и создания новых каталогов.

  • Вы можете просмотреть права доступа к файлам с помощью ls -l и изменить разрешения с помощью chmod .

  • Команда history и стрелка вверх на клавиатуре могут использоваться для повторения недавно использованных команд.

Используйте приложение "Файлы" на своем iPhone, iPad или iPod touch

Просматривайте файлы и управляйте ими с любого iPhone, iPad или iPod touch. Приложение «Файлы» упрощает поиск того, что вы ищете, независимо от того, какое устройство вы используете в данный момент.

Найдите свои файлы

Приложение «Файлы» включает файлы на используемом вами устройстве, а также файлы в других облачных сервисах и приложениях, а также в iCloud Drive.Вы также можете работать с zip-файлами. * Чтобы получить доступ к своим файлам, просто откройте приложение «Файлы» и выберите местоположение файла, который вы ищете.

Сохранить копию файла локально

Вы можете найти локально сохраненные файлы в «На моем [устройстве]» в разделе «Местоположение». На iPad просто перетащите файлы в папку «На моем iPad», чтобы сохранить их прямо на устройстве.Если вы хотите сохранить файл локально на вашем iPhone или iPod touch, выполните следующие действия.

  1. Перейдите к файлу, который вы хотите сохранить на вашем устройстве.
  2. Нажмите Выбрать> имя файла> Упорядочить.
  3. В разделе «На моем [устройстве]» выберите папку или нажмите «Новая папка», чтобы создать новую.
  4. Нажмите «Копировать».

Вы также можете нажать и удерживать файл, выбрать «Переместить» и выбрать папку, в которую вы хотите его скопировать.

В iOS 12 или более ранней версии коснитесь файла и выберите «Переместить».Затем в разделе «На моем [устройстве]» выберите «Numbers», «Keynote» или «Pages» и нажмите «Копировать».

Перемещение файлов iCloud Drive

  1. Перейдите к файлу, который вы хотите переместить.
  2. Нажмите «Выбрать», затем выберите файл.
  3. Нажмите «Организовать».
  4. В разделе «На моем [устройстве]» выберите папку или нажмите «Новая папка», чтобы создать новую.
  5. Нажмите «Переместить».

Вы также можете нажать и удерживать файл, выбрать «Переместить» и выбрать папку, в которую вы хотите его скопировать.

Найдите файлы на Mac или ПК

  • На Mac выберите «Перейти»> «iCloud Drive» в строке меню или щелкните «iCloud Drive» на боковой панели окна Finder.
  • На iCloud.com перейдите в приложение iCloud Drive.
  • На компьютере с iCloud для Windows откройте проводник и щелкните iCloud Drive.

* Защищенные паролем ZIP-папки или каталоги не поддерживаются в приложении «Файлы».

Организуйте свои файлы

Можно легко организовать все файлы, хранящиеся в iCloud Drive, включая документы Pages, Numbers и Keynote. Когда вы вносите изменения на одном устройстве, ваши изменения автоматически обновляются на каждом устройстве, использующем iCloud Drive.

Вы можете создавать свои собственные папки. Или переименуйте файлы и папки, которые у вас уже есть, когда вы сильно нажимаете на них.

Создать новые папки

  1. Перейти к местоположениям.
  2. Нажмите iCloud Drive, На моем [устройстве] или имя сторонней облачной службы, в которой вы хотите сохранить новую папку.
  3. Проведите по экрану вниз.
  4. Нажмите «Еще».
  5. Выберите новую папку.
  6. Введите имя вашей новой папки. Затем нажмите Готово.

В iOS 12 или более ранней версии нажмите «Новая папка». Если вы не видите «Новая папка» или он серый, то сторонняя облачная служба не поддерживает новые папки.

Просматривайте файлы по имени, дате, размеру или добавленным тегам. С красочными и настраиваемыми ярлыками вы можете назначать теги своим файлам любым удобным для вас способом. Это означает, что вы быстро найдете именно тот проект или документ, который вам нужен.

Добавить тег

  1. Нажмите «Выбрать».
  2. Коснитесь файла, который хотите пометить.
  3. Нажмите «Поделиться»> «Добавить теги».
  4. Выберите тег, который вы хотите добавить.

Переименовать тег

  1. Перейти к местоположениям.
  2. Нажмите «Еще»> «Изменить».
  3. Коснитесь имени существующего тега.
  4. Введите имя вашего нового тега.
  5. Нажмите Готово.

Удалить файлы

Выберите файлы, которые вам больше не нужны, и нажмите «Удалить». Если вы удаляете файлы из папки iCloud Drive на одном устройстве, они удаляются и на других ваших устройствах. iCloud Drive удаляет файлы со всех устройств, на которых вы вошли с одним и тем же Apple ID.

Когда вы удаляете файл из iCloud Drive или на моем [устройстве], он попадает в папку «Недавно удаленные». Если вы передумаете или случайно удалите файл, у вас есть 30 дней, чтобы вернуть его. Перейдите в Местоположение> Недавно удаленные. Выберите файл, который хотите сохранить, и нажмите «Восстановить». Через 30 дней ваши файлы будут удалены из списка недавно удаленных.

Вы также можете войти в iCloud.com со своего Mac или ПК, затем перейти в iCloud Drive и установить флажок «Недавно удаленные».

Делитесь папками и файлами с друзьями или коллегами

Хотите поделиться с другом или коллегой? Вы можете поделиться любой папкой или файлом, хранящимся в iCloud Drive, прямо из приложения «Файлы».В iCloud Drive коснитесь «Выбрать», выберите файл или папку, которыми хотите поделиться, коснитесь «Поделиться» и выберите «Добавить людей». Вы можете поделиться папкой или файлом через AirDrop, Сообщения, Почту и т. Д. Узнайте больше о том, как общий доступ к папкам и файлам работает в iCloud Drive.

Или, может быть, вы хотите совместно работать над проектом в режиме реального времени. Приложение "Файлы" позволяет делать то же самое с документами Pages, Numbers и Keynote. Выберите файл и нажмите «Поделиться» или> «Добавить людей». Вы можете пригласить их к сотрудничеству через Сообщения, Почту или скопировать и вставить ссылку.Ваши участники имеют цветовую маркировку. И вы можете видеть, когда они в сети, активно работают над вашим общим документом.

Использование сторонних приложений в файлах

Приложение «Файлы» позволяет вам добавлять сторонние облачные сервисы, такие как Box, Dropbox, OneDrive, Adobe Creative Cloud, Google Drive и другие, чтобы вы могли получить доступ ко всем своим файлам на всех своих устройствах.Файлы, которые вы храните в iCloud Drive, автоматически появляются в приложении «Файлы», но вам также необходимо настроить другие облачные сервисы для доступа к ним в приложении «Файлы».

Добавить сторонние приложения

  1. Загрузите и настройте стороннее облачное приложение.
  2. Откройте приложение "Файлы".
  3. Коснитесь вкладки Обзор.
  4. Нажмите «Еще»> «Изменить».
  5. Включите сторонние приложения, которые вы хотите использовать в приложении «Файлы».
  6. Нажмите Готово.

Если вы не видите одну из сторонних облачных служб в приложении «Файлы», обратитесь к поставщику облачных услуг.

В iOS 12 или более ранней версии откройте приложение «Файлы», затем нажмите «Местоположение»> «Изменить», чтобы добавить сторонние приложения.

Перемещение сторонних облачных файлов

  1. Откройте файл, который вы хотите переместить.
  2. Нажмите «Поделиться»> «Копировать».
  3. Откройте папку, в которую вы хотите переместить файл.
  4. Плотно нажмите на экран.
  5. Коснитесь «Вставить».

Делайте больше с файлами на iPadOS

Если вы используете iPadOS, вы можете получить доступ к файлам на USB-накопителе, SD-карте или жестком диске через приложение «Файлы» на iPadOS.Просто подключите запоминающее устройство, а затем вы можете выбрать его в разделе «Места». Вы также можете подключиться к незашифрованному хранилищу на файловом сервере, если это хранилище использует формат APFS, Mac OS Extended, MS-DOS (FAT) или ExFAT. У вас также есть возможность просматривать ваши файлы в столбцовом представлении, что полезно, если у вас есть файлы, вложенные в несколько папок. Просмотр в столбце позволяет просматривать файлы предварительного просмотра и предлагает доступ к таким инструментам, как разметка и поворот, даже не открывая файл.

Подключение к файловому серверу

  1. Откройте вкладку Обзор.
  2. Нажмите «Еще».
  3. Выберите «Подключиться к серверу».
  4. Введите адрес SMB.
  5. Нажмите «Подключиться».
  6. Имя сервера отображается в разделе «Общие» в меню «Обзор».

Перейти к просмотру столбцов

  1. В альбомном режиме откройте вкладку Обзор.
  2. Выберите папку.
  3. Проведите пальцем вниз по правой стороне экрана.
  4. Выберите вид столбца в правом верхнем углу.
  5. Коснитесь папки, чтобы развернуть ее содержимое.
  6. Коснитесь файла, чтобы просмотреть его.

Чтобы выйти из режима просмотра столбцов, нажмите «Просмотр в виде таблицы» или «Список» или используйте iPad в портретном режиме.

Информация о продуктах, произведенных не Apple, или о независимых веб-сайтах, не контролируемых и не проверенных Apple, предоставляется без рекомендаций или одобрения.Apple не несет ответственности за выбор, работу или использование сторонних веб-сайтов или продуктов. Apple не делает никаких заявлений относительно точности или надежности сторонних веб-сайтов. Свяжитесь с продавцом для получения дополнительной информации.

Дата публикации:

Работа с файлами - Изучение веб-разработки

Веб-сайт состоит из множества файлов: текстового содержимого, кода, таблиц стилей, мультимедийного содержимого и так далее.Когда вы создаете веб-сайт, вам необходимо собрать эти файлы в разумную структуру на вашем локальном компьютере, убедиться, что они могут взаимодействовать друг с другом, и чтобы весь ваш контент выглядел правильно, прежде чем вы в конечном итоге загрузите их на сервер. Работа с файлами обсуждает некоторые проблемы, о которых вам следует знать, чтобы вы могли настроить разумную файловую структуру для своего веб-сайта.

Когда вы работаете над веб-сайтом локально на своем компьютере, вы должны хранить все связанные файлы в одной папке, которая отражает файловую структуру опубликованного веб-сайта на сервере.Эта папка может находиться где угодно, но вы должны поместить ее где-нибудь, где ее будет легко найти, например, на рабочем столе, в домашней папке или в корне жесткого диска.

  1. Выберите место для хранения проектов вашего сайта. Внутри выбранного вами места создайте новую папку с названием web-projects (или аналогичные). Здесь будут жить все ваши веб-проекты.
  2. Внутри этой первой папки создайте другую папку для хранения вашего первого веб-сайта. Назовите ее test-site (или как-нибудь более изобретательно).

Вы заметите, что в этой статье мы просим вас называть папки и файлы полностью строчными буквами без пробелов. Это потому, что:

  1. Многие компьютеры, особенно веб-серверы, чувствительны к регистру. Так, например, если вы разместите изображение на своем веб-сайте по адресу test-site / MyImage.jpg , а затем в другом файле вы попытаетесь вызвать изображение как test-site / myimage.jpg , оно может не сработать.
  2. Браузеры, веб-серверы и языки программирования не обрабатывают пробелы последовательно.Например, если вы используете пробелы в имени файла, некоторые системы могут рассматривать имя файла как два имени файла. Некоторые серверы заменяют области в ваших именах файлов на «% 20» (код символа для пробелов в URI), в результате чего все ваши ссылки не работают. Лучше разделять слова дефисами, а не подчеркиваниями: my-file.html vs. my_file.html .

Короткий ответ заключается в том, что вы должны использовать дефис для имен файлов. Поисковая система Google рассматривает дефис как разделитель слов, но не воспринимает подчеркивание таким образом.По этим причинам лучше выработать привычку писать имена папок и файлов строчными буквами без пробелов и со словами, разделенными дефисами, по крайней мере, до тех пор, пока вы не поймете, что делаете. Таким образом, в будущем вы столкнетесь с меньшим количеством проблем.

Далее давайте посмотрим, какую структуру должен иметь наш тестовый сайт. Чаще всего в любом проекте веб-сайта мы создаем индексный HTML-файл и папки, содержащие изображения, файлы стилей и файлы сценариев. Давайте создадим их сейчас:

  1. индекс.html : этот файл обычно будет содержать содержимое вашей домашней страницы, то есть текст и изображения, которые люди видят, когда они впервые заходят на ваш сайт. Используя текстовый редактор, создайте новый файл с именем index.html и сохраните его в папке тестового сайта .
  2. изображений папка : Эта папка будет содержать все изображения, которые вы используете на своем сайте. Создайте папку с именем изображений внутри папки тестовой площадки .
  3. стили папка : Эта папка будет содержать код CSS, используемый для стилизации вашего контента (например, установки цвета текста и фона). Создайте папку с именем styles внутри папки test-site .
  4. папка сценариев : Эта папка будет содержать весь код JavaScript, используемый для добавления интерактивных функций на ваш сайт (например, кнопки, которые загружают данные при нажатии). Создайте папку с именем scripts внутри папки test-site .

Примечание : На компьютерах с Windows у вас могут возникнуть проблемы с отображением имен файлов, потому что в Windows есть опция под названием Скрыть расширения для известных типов файлов , включенная по умолчанию. Как правило, вы можете отключить это, зайдя в проводник Windows, выбрав параметр Параметры папки … , сняв флажок Скрыть расширения для известных типов файлов , затем нажав ОК . Более подробную информацию о вашей версии Windows вы можете найти в Интернете.

Чтобы файлы взаимодействовали друг с другом, вы должны указать путь к файлу между ними — в основном маршрут, чтобы один файл знал, где находится другой. Чтобы продемонстрировать это, мы вставим немного HTML в наш файл index.html и заставим его отображать изображение, которое вы выбрали в статье «Как будет выглядеть ваш веб-сайт?» Кроме того, вы можете выбрать существующее изображение в вашем распоряжении, на вашем компьютере или в Интернете, и использовать его в следующих шагах:

  1. Скопируйте изображение, которое вы выбрали ранее, в папку изображений .
  2. Откройте файл index.html и вставьте следующий код в файл точно так, как показано. Не беспокойтесь о том, что все это означает сейчас — мы рассмотрим структуры более подробно позже в этой серии.
      
    
      
        
         Моя тестовая страница 
      
      
        Мое тестовое изображение 
      
  3. Строка My test image — это HTML-код, который вставляет изображение на страницу.Нам нужно указать HTML, где находится изображение. Изображение находится в каталоге изображений , который находится в том же каталоге, что и index.html . Чтобы перейти по файловой структуре от index.html к нашему изображению, нам потребуется путь к файлу images / your-image-filename . Например, наше изображение называется firefox-icon.png , поэтому путь к файлу — images / firefox-icon.png .
  4. Вставьте путь к файлу в код HTML между двойными кавычками кода src = "" .
  5. Сохраните файл HTML, затем загрузите его в веб-браузер (дважды щелкните файл). Вы должны увидеть свою новую веб-страницу с вашим изображением!

Некоторые общие правила для путей к файлам:

  • Чтобы создать ссылку на целевой файл в том же каталоге, что и вызывающий файл HTML, просто используйте имя файла, например my-image.jpg .
  • Чтобы сослаться на файл в подкаталоге, напишите имя каталога перед путем плюс косую черту, напримерПодкаталог / my-image.jpg .
  • Чтобы связать целевой файл в каталоге над вызывающим файлом HTML, напишите две точки. Так, например, если index.html находился внутри подпапки test-site , а my-image.jpg был внутри test-site , вы могли ссылаться на my-image.jpg из index. html , используя ../my-image.jpg .
  • Вы можете комбинировать их сколько угодно, например ../subdirectory/another-subdirectory/my-image.jpg .

На данный момент это все, что вам нужно знать.

Примечание : файловая система Windows имеет тенденцию использовать обратную косую черту, а не прямую косую черту, например C: \ windows . Это не имеет значения в HTML — даже если вы разрабатываете свой веб-сайт в Windows, вам все равно следует использовать косую черту в своем коде.

На этом пока все. Структура вашей папки должна выглядеть примерно так:

Работа с файлами

Вы можете очень легко распространить предыдущие примеры на несколько файлов, указав несколько аргументов для из () :

Пример 4.Использование нескольких аргументов с from ()

build.gradle

  tasks.register ('copyReportsForArchiving', Копировать) {
    из layout.buildDirectory.file ("reports / my-report.pdf"), layout.projectDirectory.file ("src / docs / manual.pdf")
    в layout.buildDirectory.dir ("toArchive")
}  

build.gradle.kts

  tasks.register  ("copyReportsForArchiving") {
    из (layout.buildDirectory.file ("reports / my-report.pdf"), layout.projectDirectory.файл ("src / docs / manual.pdf"))
    в (layout.buildDirectory.dir ("toArchive"))
}  

Два файла теперь скопированы в каталог архива. Вы также можете использовать несколько операторов from () , чтобы сделать то же самое, как показано в первом примере раздела Углубленное копирование файлов.

Теперь рассмотрим другой пример: что, если вы хотите скопировать все файлы PDF в каталоге, не указывая каждый из них? Для этого прикрепите шаблоны включения и / или исключения к спецификации копии.Здесь мы используем строковый шаблон для включения только PDF-файлов:

Пример 5. Использование плоского фильтра

build.gradle

  tasks.register ('copyPdfReportsForArchiving', Копировать) {
    из layout.buildDirectory.dir ("отчеты")
    включить "* .pdf"
    в layout.buildDirectory.dir ("toArchive")
}  

build.gradle.kts

  tasks.register  ("copyPdfReportsForArchiving") {
    из (layout.buildDirectory.dir ("отчеты"))
    включают("*.pdf ")
    в (layout.buildDirectory.dir ("toArchive"))
}  

Следует отметить, что, как показано на следующей диаграмме, копируются только файлы PDF, которые находятся непосредственно в каталоге отчетов :

Рис. 1. Влияние плоского фильтра на копирование

Вы можете включать файлы в подкаталоги с помощью шаблона глобуса в стиле Ant ( ** / * ), как это сделано в этом обновленном примере:

Пример 6. Использование глубокого фильтра

корп.класс

  tasks.register ('copyAllPdfReportsForArchiving', Копировать) {
    из layout.buildDirectory.dir ("отчеты")
    включить "** / *. pdf"
    в layout.buildDirectory.dir ("toArchive")
}  

build.gradle.kts

  tasks.register  ("copyAllPdfReportsForArchiving") {
    из (layout.buildDirectory.dir ("отчеты"))
    включить ("** / *. pdf")
    в (layout.buildDirectory.dir ("toArchive"))
}  

Эта задача имеет следующий эффект:

Рисунок 2.Влияние глубокого фильтра на копирование

Следует иметь в виду, что такой глубокий фильтр имеет побочный эффект, заключающийся в копировании структуры каталогов ниже , сообщает , а также файлы. Если вы просто хотите скопировать файлы без структуры каталогов, вам необходимо использовать явное выражение fileTree ( dir ) { включает } .files выражение. Подробнее о разнице между деревьями файлов и коллекциями файлов мы поговорим в разделе Деревья файлов.

Это лишь один из вариантов поведения, с которым вы, вероятно, столкнетесь при работе с файловыми операциями в сборках Gradle. К счастью, Gradle предоставляет элегантные решения почти для всех этих случаев использования. Прочтите подробные разделы , посвященные , далее в этой главе, чтобы получить более подробную информацию о том, как файловые операции работают в Gradle и какие параметры у вас есть для их настройки.

Работа с файлами в Python — Настоящий Python

Python имеет несколько встроенных модулей и функций для работы с файлами.Эти функции распределены по нескольким модулям, таким как os , os.path , shutil и pathlib , и это лишь некоторые из них. В этой статье собраны в одном месте многие функции, которые вам необходимо знать для выполнения наиболее распространенных операций с файлами в Python.

Из этого руководства вы узнаете, как:

  • Получить свойства файла
  • Создать каталог
  • Шаблоны соответствия в именах файлов
  • Переход по деревьям каталогов
  • Создание временных файлов и каталогов
  • Удалить файлы и каталоги
  • Копирование, перемещение или переименование файлов и каталогов
  • Создание и извлечение архивов ZIP и TAR
  • Открытие нескольких файлов с помощью модуля fileinput

Бесплатный бонус: 5 мыслей о Python Mastery, бесплатный курс для разработчиков Python, который показывает вам план действий и образ мышления, которые вам понадобятся, чтобы вывести свои навыки Python на новый уровень.

Шаблон Python «с открытым (…) как…» шаблон

Чтение и запись данных в файлы с помощью Python довольно просты. Для этого необходимо сначала открыть файлы в соответствующем режиме. Вот пример того, как использовать шаблон Python «with open (…) as…» для открытия текстового файла и чтения его содержимого:

  с open ('data.txt', 'r') как f:
    data = f.read ()
  

open () принимает в качестве аргументов имя файла и режим. r открывает файл в режиме только для чтения.Чтобы записать данные в файл, передайте вместо этого w в качестве аргумента:

  с open ('data.txt', 'w') как f:
    data = 'некоторые данные для записи в файл'
    f.write (данные)
  

В приведенных выше примерах open () открывает файлы для чтения или записи и возвращает дескриптор файла (в данном случае f ), который предоставляет методы, которые можно использовать для чтения или записи данных в файл. Ознакомьтесь с разделами «Чтение и запись файлов в Python» и «Работа с файловым вводом-выводом в Python» для получения дополнительной информации о том, как читать и записывать файлы.

Получение листинга каталога

Предположим, в вашем текущем рабочем каталоге есть подкаталог с именем my_directory , содержащий следующее содержимое:

  my_directory /
|
├── sub_dir /
| ├── bar.py
| └── foo.py
|
├── sub_dir_b /
| └── file4.txt
|
├── sub_dir_c /
| ├── config.py
| └── file5.txt
|
├── file1.py
├── file2.csv
└── file3.txt
  

Встроенный модуль os имеет ряд полезных функций, которые можно использовать для составления списка содержимого каталогов и фильтрации результатов.Чтобы получить список всех файлов и папок в определенном каталоге файловой системы, используйте os.listdir () в устаревших версиях Python или os.scandir () в Python 3.x. os.scandir () — предпочтительный метод для использования, если вы также хотите получить свойства файла и каталога, такие как размер файла и дата модификации.

Список каталогов

в устаревших версиях Python

В версиях Python до Python 3 os.listdir () — это метод, используемый для получения списка каталогов:

>>>
  >>> импорт ОС
>>> entry = os.listdir ('мой_директория /')
  

os.listdir () возвращает список Python, содержащий имена файлов и подкаталогов в каталоге, заданном аргументом пути:

>>>
  >>> os.listdir ('my_directory /')
['sub_dir_c', 'file1.py', 'sub_dir_b', 'file3.txt', 'file2.csv', 'sub_dir']
  

Такой список каталогов нелегко прочитать. Распечатка вывода вызова на os.listdir () с использованием цикла помогает навести порядок:

>>>
  >>> entry = os.listdir ('мой_директория /')
>>> для записи в записи:
... печать (запись)
...
...
sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
  
Список каталогов

в современных версиях Python

В современных версиях Python альтернативой os.listdir () является использование os.scandir () и pathlib.Path () .

os.scandir () был представлен в Python 3.5 и задокументирован в PEP 471. os.scandir () при вызове возвращает итератор, а не список:

>>>
  >>> импорт ОС
>>> entry = os.scandir ('мой_каталог /')
>>> записи
<объект posix.ScandirIterator по адресу 0x7f5b047f3690>
  

ScandirIterator указывает на все записи в текущем каталоге. Вы можете перебрать содержимое итератора и распечатать имена файлов:

  импорт ОС

с os.scandir ('my_directory /') в качестве записей:
    для записи в записи:
        печать (entry.name)
  

Здесь os.scandir () используется вместе с с оператором , потому что он поддерживает протокол диспетчера контекста.Использование диспетчера контекста закрывает итератор и автоматически освобождает полученные ресурсы после того, как итератор исчерпан. Результатом является распечатка имен файлов в my_directory / , как вы видели в примере os.listdir () :

  sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
  

Другой способ получить список каталогов — использовать модуль pathlib :

  из пути импорта pathlib

записи = Путь ('my_directory /')
для записи в записи.iterdir ():
    печать (entry.name)
  

Объекты, возвращаемые параметром Path , являются объектами PosixPath или WindowsPath в зависимости от ОС.

pathlib.Path () Объекты имеют метод .iterdir () для создания итератора всех файлов и папок в каталоге. Каждая запись, выдаваемая командой .iterdir () , содержит информацию о файле или каталоге, такую ​​как его имя и атрибуты файла. pathlib впервые был представлен в Python 3.4 и является отличным дополнением к Python, предоставляющим объектно-ориентированный интерфейс для файловой системы.

В приведенном выше примере вы вызываете pathlib.Path () и передаете ему аргумент пути. Далее следует вызов .iterdir () , чтобы получить список всех файлов и каталогов в my_directory .

pathlib предлагает набор классов, отображающих большинство общих операций с путями простым и объектно-ориентированным способом. Использование pathlib более, если не столь же эффективно, как использование функций в os .Еще одно преимущество использования pathlib по сравнению с os заключается в том, что это уменьшает количество операций импорта, которые необходимо выполнить для управления путями файловой системы. Для получения дополнительной информации прочтите модуль pathlib Python 3: Укрощение файловой системы.

Выполнение приведенного выше кода дает следующее:

  sub_dir_c
file1.py
sub_dir_b
file3.txt
file2.csv
sub_dir
  

Использование pathlib.Path () или os.scandir () вместо os.listdir () является предпочтительным способом получения списка каталогов, особенно когда вы работаете с кодом, которому нужен тип файла и информация об атрибутах файла. pathlib.Path () предлагает большую часть функций обработки файлов и путей, которые есть в os и shutil , и его методы более эффективны, чем некоторые из этих модулей. Вскоре мы обсудим, как получить свойства файла.

Вот еще раз функции листинга каталогов:

Функция Описание
os.listdir () Возвращает список всех файлов и папок в каталоге
ос.скандир () Возвращает итератор всех объектов в каталоге, включая информацию об атрибутах файла.
pathlib.Path.iterdir () Возвращает итератор всех объектов в каталоге, включая информацию об атрибутах файла

Эти функции возвращают список из всего в каталоге, включая подкаталоги. Это не всегда может быть тем поведением, которое вам нужно. В следующем разделе будет показано, как отфильтровать результаты из списка каталогов.

Список всех файлов в каталоге

В этом разделе показано, как распечатать имена файлов в каталоге с помощью os.listdir () , os.scandir () и pathlib.Path () . Чтобы отфильтровать каталоги и перечислить только файлы из списка каталогов, созданного os.listdir () , используйте os.path :

  импорт ОС

# Вывести список всех файлов в каталоге с помощью os.listdir
basepath = 'my_directory /'
для записи в os.listdir (базовый путь):
    если os.path.isfile (os.path.join (базовый путь, запись)):
        печать (запись)
  

Здесь вызов os.listdir () возвращает список всего по указанному пути, а затем этот список фильтруется с помощью os.path.isfile () , чтобы распечатать только файлы, а не каталоги. Это дает следующий результат:

  file1.py
file3.txt
file2.csv
  

Более простой способ перечислить файлы в каталоге — использовать os.scandir () или pathlib.Path () :

  импорт ОС

# Вывести список всех файлов в каталоге с помощью scandir ()
basepath = 'my_directory /'
с os.scandir (basepath) как записи:
    для записи в записи:
        если entry.is_file ():
            печать (entry.name)
  

Использование os.scandir () имеет то преимущество, что выглядит чище и легче для понимания, чем использование os.listdir () , хотя это на одну строку кода длиннее. Вызов entry.is_file () для каждого элемента в ScandirIterator возвращает True , если объект является файлом. Распечатав имена всех файлов в каталоге, вы получите следующий результат:

  файл1.ру
file3.txt
file2.csv
  

Вот как вывести список файлов в каталоге с помощью pathlib.Path () :

  из пути импорта pathlib

basepath = Путь ('my_directory /')
files_in_basepath = basepath.iterdir ()
для элемента в files_in_basepath:
    если item.is_file ():
        печать (название предмета)
  

Здесь вы вызываете .is_file () для каждой записи, полученной с помощью .iterdir () . Результат такой же:

  file1.py
файл3.текст
file2.csv
  

Приведенный выше код можно сделать более кратким, если объединить цикл for и оператор if в одно выражение генератора. У Дэна Бадера есть отличная статья о выражениях-генераторах и понимании списков.

Модифицированная версия выглядит так:

  из пути импорта pathlib

# Вывести список всех файлов в каталоге, используя pathlib
basepath = Путь ('my_directory /')
files_in_basepath = (запись для входа в basepath.iterdir (), если запись.is_file ())
для элемента в files_in_basepath:
    печать (название предмета)
  

Результат точно такой же, как в предыдущем примере. В этом разделе показано, что фильтрация файлов или каталогов с использованием os.scandir () и pathlib.Path () более интуитивно понятна и выглядит чище, чем использование os.listdir () в сочетании с os.path .

Вывод списка подкаталогов

Чтобы вывести список подкаталогов вместо файлов, используйте один из следующих способов.Вот как использовать os.listdir () и os.path () :

  импорт ОС

# Список всех подкаталогов с помощью os.listdir
basepath = 'my_directory /'
для записи в os.listdir (базовый путь):
    если os.path.isdir (os.path.join (basepath, entry)):
        печать (запись)
  

Управление путями файловой системы таким способом может быстро стать обременительным, если у вас есть несколько вызовов os.path.join () . Запуск этого на моем компьютере дает следующий результат:

  sub_dir_c
sub_dir_b
sub_dir
  

Вот как использовать ОС .scandir () :

  импорт ОС

# Вывести список всех подкаталогов с помощью scandir ()
basepath = 'my_directory /'
с os.scandir (basepath) в качестве записей:
    для записи в записи:
        если entry.is_dir ():
            печать (entry.name)
  

Как и в примере с листингом файлов, здесь вы вызываете .is_dir () для каждой записи, возвращаемой os.scandir () . Если запись является каталогом, .is_dir () возвращает True , и имя каталога распечатывается.Вывод такой же, как и выше:

  sub_dir_c
sub_dir_b
sub_dir
  

Вот как использовать pathlib.Path () :

  из пути импорта pathlib

# Список всех подкаталогов с помощью pathlib
basepath = Путь ('my_directory /')
для входа в basepath.iterdir ():
    если entry.is_dir ():
        печать (entry.name)
  

Вызов .is_dir () для каждой записи базового пути Итератор проверяет, является ли запись файлом или каталогом.Если запись является каталогом, ее имя выводится на экран, а результат такой же, как и в предыдущем примере:

  sub_dir_c
sub_dir_b
sub_dir
  

Получение атрибутов файла

Python упрощает получение атрибутов файла, таких как размер файла и время изменения. Это делается с помощью os.stat () , os.scandir () или pathlib.Path () .

os.scandir () и pathlib.Path () получить список каталогов с объединенными атрибутами файлов. Это может быть потенциально более эффективным, чем использование os.listdir () для вывода списка файлов и последующего получения информации об атрибутах для каждого файла.

Примеры ниже показывают, как получить время последнего изменения файлов в my_directory / . Вывод в секундах:

>>>
  >>> импорт ОС
>>> с os.scandir ('my_directory /') как dir_contents:
... для записи в dir_contents:
... info = entry.stat ()
... печать (info.st_mtime)
...
153

99,0052035 15369,6324475 1538998552.2402923 1540233322.4009316 15371.0497339 1540266380.3434134

os.scandir () возвращает объект ScandirIterator . Каждая запись в объекте ScandirIterator имеет метод .stat () , который извлекает информацию о файле или каталоге, на который он указывает. .stat () предоставляет такую ​​информацию, как размер файла и время последней модификации.В приведенном выше примере код распечатывает атрибут st_mtime , который указывает время последнего изменения содержимого файла.

Модуль pathlib имеет соответствующие методы для получения информации о файлах, которые дают те же результаты:

>>>
  >>> from pathlib import Path
>>> current_dir = Путь ('my_directory')
>>> для пути в current_dir.iterdir ():
... информация = путь.stat ()
... печать (info.st_mtime)
...153

99,0052035 15369,6324475 1538998552.2402923 1540233322.4009316 15371.0497339 1540266380.3434134

В приведенном выше примере код проходит через объект, возвращаемый функцией .iterdir () , и извлекает атрибуты файла с помощью вызова .stat () для каждого файла в списке каталогов. Атрибут st_mtime возвращает значение с плавающей запятой, которое представляет секунды с начала эпохи. Чтобы преобразовать значения, возвращаемые st_mtime для целей отображения, вы можете написать вспомогательную функцию для преобразования секунд в объект datetime :

  из datetime import datetime
из os import scandir

def convert_date (отметка времени):
    d = дата и время.utcfromtimestamp (отметка времени)
    formated_date = d.strftime ('% d% b% Y')
    вернуть formated_date

def get_files ():
    dir_entries = scandir ('мой_каталог /')
    для записи в dir_entries:
        если entry.is_file ():
            info = entry.stat ()
            print (f '{entry.name} \ t Последнее изменение: {convert_date (info.st_mtime)}')
  

Сначала будет получен список файлов в my_directory и их атрибуты, а затем будет вызвана функция convert_date () для преобразования времени последнего изменения каждого файла в удобочитаемую форму. convert_date () использует .strftime () для преобразования времени в секундах в строку.

В .strftime () передаются следующие аргументы:

  • % d : день месяца
  • % b : месяц, сокращенно
  • % Y : год

Вместе эти директивы производят вывод, который выглядит следующим образом:

>>>
  >>> get_files ()
файл1.py Последнее изменение: 4 октября 2018 г.
file3.txt Последнее изменение: 17 сен 2018
file2.txt Последнее изменение: 17 сен 2018
  

Синтаксис преобразования даты и времени в строки может сбивать с толку. Чтобы узнать больше об этом, ознакомьтесь с официальной документацией по нему. Еще одна удобная ссылка, которую легко запомнить, — это http://strftime.org/.

Создание каталогов

Рано или поздно программы, которые вы пишете, должны будут создавать каталоги, чтобы хранить в них данные. os и pathlib включают функции для создания каталогов. Мы учтем это:

Функция Описание
os.mkdir () Создает единственный подкаталог
pathlib.Path.mkdir () Создает один или несколько каталогов
os.makedirs () Создает несколько каталогов, включая промежуточные каталоги

Создание единого каталога

Чтобы создать отдельный каталог, передайте путь к каталогу в качестве параметра os.mkdir () :

  импорт ОС

os.mkdir ('каталог_пример /')
  

Если каталог уже существует, os.mkdir () вызывает FileExistsError . В качестве альтернативы вы можете создать каталог, используя pathlib :

  из пути импорта pathlib

p = Путь ('example_directory /')
p.mkdir ()
  

Если путь уже существует, mkdir () вызывает ошибку FileExistsError :

>>>
  >>> п.mkdir ()
Отслеживание (последний вызов последний):
  Файл '', строка 1, в 
  Файл '/usr/lib/python3.5/pathlib.py', строка 1214, в mkdir
    self._accessor.mkdir (сам, режим)
  Файл '/usr/lib/python3.5/pathlib.py', строка 371, в оболочке
    вернуть strfunc (str (pathobj), * args)
FileExistsError: [Errno 17] Файл существует: '.'
[Errno 17] Файл существует: '.'
  

Чтобы избежать подобных ошибок, перехватите ошибку, когда она возникает, и сообщите своему пользователю:

  из пути импорта pathlib

p = Путь ('example_directory')
пытаться:
    п.mkdir ()
кроме FileExistsError как exc:
    печать (искл)
  

В качестве альтернативы вы можете игнорировать ошибку FileExistsError , передав аргумент exist_ok = True в .mkdir () :

  из пути импорта pathlib

p = Путь ('example_directory')
p.mkdir (exist_ok = True)
  

Это не вызовет ошибки, если каталог уже существует.

Создание нескольких каталогов

os.makedirs () похож на os.mkdir () . Разница между ними заключается в том, что os.makedirs () может не только создавать отдельные каталоги, но также может использоваться для создания деревьев каталогов. Другими словами, он может создавать любые необходимые промежуточные папки, чтобы гарантировать существование полного пути.

os.makedirs () аналогичен запуску mkdir -p в Bash. Например, чтобы создать группу каталогов типа 2018/10/05 , все, что вам нужно сделать, это следующее:

  импорт ОС


Операционные системы.makedirs ('2018/10/05')
  

Будет создана вложенная структура каталогов, содержащая папки 2018, 10 и 05:

 .
|
└── 2018 /
    └── 10 /
        └── 05 /
  

.makedirs () создает каталоги с разрешениями по умолчанию. Если вам нужно создать каталоги с разными разрешениями, вызовите .makedirs () и перейдите в режим, в котором вы хотите, чтобы каталоги были созданы:

  импорт ОС

os.makedirs ('2018/10/05', mode = 0o770)
  

Это создает структуру каталогов 2018/10/05 и дает владельцу и группе пользователей права на чтение, запись и выполнение.Режим по умолчанию — 0o777 , и биты прав доступа к файлам существующих родительских каталогов не изменяются. Дополнительные сведения о правах доступа к файлам и о том, как применяется режим, см. В документации.

Запустите дерево , чтобы убедиться, что были применены правильные разрешения:

  $ tree -p -i.
.
[drwxrwx ---] 2018 г.
[drwxrwx ---] 10
[drwxrwx ---] 05
  

Распечатывает дерево каталогов текущего каталога. tree обычно используется для отображения содержимого каталогов в древовидном формате.Передав ему аргументы -p и -i , вы распечатаете имена каталогов и информацию о правах доступа к файлам в вертикальном списке. -p распечатывает права доступа к файлу, а -i заставляет дерево создавать вертикальный список без строк отступа.

Как видите, все каталоги имеют 770 разрешений. Альтернативный способ создания каталогов — использовать .mkdir () из pathlib.Path :

  импорт pathlib

p = pathlib.Путь ('2018/10/05')
p.mkdir (родители = Истина)
  

Передача parent = True в путь Path.mkdir () заставляет его создать каталог 05 и все родительские каталоги, необходимые для того, чтобы путь был действительным.

По умолчанию os.makedirs () и Path.mkdir () вызывают OSError , если целевой каталог уже существует. Это поведение можно переопределить (начиная с Python 3.2), передав exist_ok = True в качестве аргумента ключевого слова при вызове каждой функции.

Выполнение приведенного выше кода создает структуру каталогов, подобную приведенной ниже, за один раз:

 .
|
└── 2018 /
    └── 10 /
        └── 05 /
  

Я предпочитаю использовать pathlib при создании каталогов, потому что я могу использовать ту же функцию для создания одиночных или вложенных каталогов.

Сопоставление с шаблоном имени файла

После получения списка файлов в каталоге одним из описанных выше методов вы, скорее всего, захотите найти файлы, соответствующие определенному шаблону.

Это доступные вам методы и функции:

  • заканчивается с () и начинается с () строковые методы
  • fnmatch.fnmatch ()
  • glob.glob ()
  • pathlib.Path.glob ()

Каждый из них обсуждается ниже. Примеры в этом разделе будут выполняться в каталоге с именем some_directory , который имеет следующую структуру:

 .|
├── sub_dir /
| ├── file1.py
| └── file2.py
|
├── admin.py
├── data_01_backup.txt
├── data_01.txt
├── data_02_backup.txt
├── data_02.txt
├── data_03_backup.txt
├── data_03.txt
└── tests.py
  

Если вы используете оболочку Bash, вы можете создать указанную выше структуру каталогов с помощью следующих команд:

  $ mkdir some_directory
$ cd some_directory /
$ mkdir sub_dir
$ touch sub_dir / file1.py sub_dir / file2.py
$ touch data_ {01..03} .txt data_ {01..03} _backup.txt admin.py tests.py
  

Это создаст каталог some_directory / , перейдет в него, а затем создаст подкаталог sub_dir . Следующая строка создает file1.py и file2.py в sub_dir , а последняя строка создает все остальные файлы с использованием расширения. Чтобы узнать больше о расширении оболочки, посетите этот сайт.

Использование строковых методов

Python имеет несколько встроенных методов для изменения и управления строками. Два из этих методов, .Startwith () и .endswith () полезны при поиске шаблонов в именах файлов. Для этого сначала получите список каталогов, а затем переберите его:

>>>
  >>> импорт ОС

>>> # Получить файлы .txt
>>> для f_name в os.listdir ('some_directory'):
... если f_name.endswith ('. txt'):
... печать (f_name)
  

Приведенный выше код находит все файлы в some_directory / , перебирает их и использует .endwith () , чтобы распечатать имена файлов с расширением .txt . Запуск этого на моем компьютере дает следующий результат:

  data_01.txt
data_03.txt
data_03_backup.txt
data_02_backup.txt
data_02.txt
data_01_backup.txt
  

Простое сопоставление с образцом имени файла с использованием

fnmatch

Строковые методы ограничены в возможностях сопоставления. fnmatch имеет более продвинутые функции и методы для сопоставления с образцом.Мы рассмотрим fnmatch.fnmatch () , функцию, которая поддерживает использование подстановочных знаков, таких как * и ? для соответствия имен файлов. Например, чтобы найти все файлы .txt в каталоге с помощью fnmatch , вы должны сделать следующее:

>>>
  >>> импорт ОС
>>> импортировать fnmatch

>>> для имени_файла в os.listdir ('some_directory /'):
... если fnmatch.fnmatch (имя_файла, '* .txt'):
... печать (имя_файла)
  

Перебирает список файлов в some_directory и использует .fnmatch () для выполнения поиска по шаблону для файлов с расширением .txt .

Более расширенное сопоставление с образцом

Предположим, вы хотите найти файлов .txt, файлов, соответствующих определенным критериям. Например, вас может заинтересовать только поиск файлов .txt , которые содержат слово data , число между набором знаков подчеркивания и слово backup в своем имени файла. Что-то похожее на data_01_backup , data_02_backup или data_03_backup .

Используя fnmatch.fnmatch () , вы можете сделать это так:

>>>
  >>> для имени файла в os.listdir ('.'):
... если fnmatch.fnmatch (имя файла, 'data _ * _ backup.txt'):
... печать (имя файла)
  

Здесь вы печатаете только имена файлов, которые соответствуют шаблону data _ * _ backup.txt . Звездочка в шаблоне будет соответствовать любому символу, поэтому при ее запуске будут найдены все текстовые файлы, имена файлов которых начинаются со слова data и заканчиваются резервной копией .txt , как видно из вывода ниже:

  data_03_backup.txt
data_02_backup.txt
data_01_backup.txt
  

Сопоставление с шаблоном имени файла с использованием глобуса

Еще один полезный модуль для сопоставления с образцом — glob .

.glob () в модуле glob работает так же, как fnmatch.fnmatch () , но в отличие от fnmatch.fnmatch () , он обрабатывает файлы, начинающиеся с точки (. ), как особые.

UNIX и родственные системы переводят шаблоны имен с помощью подстановочных знаков, например ? и * в список файлов. Это называется глобусом.

Например, ввод mv * .py python_files / в оболочке UNIX перемещает ( mv ) все файлы с расширением .py из текущего каталога в каталог python_files . Символ * — это подстановочный знак, который означает «любое количество символов», а * .py — шаблон глобуса.Эта возможность оболочки недоступна в операционной системе Windows. Модуль glob добавляет эту возможность в Python, что позволяет программам Windows использовать эту функцию.

Вот пример того, как использовать glob для поиска всех исходных файлов Python ( .py ) в текущем каталоге:

>>>
  >>> импорт глоб
>>> glob.glob ('*. py')
['admin.py', 'tests.py']
  

glob.glob ('*. Py') выполняет поиск всех файлов с кодом .py в текущем каталоге и возвращает их в виде списка. glob также поддерживает подстановочные знаки в стиле оболочки для соответствия шаблонам:

>>>
  >>> импорт глоб
>>> для имени в glob.glob ('* [0-9] *. txt'):
... печать (имя)
  

Это находит все текстовые файлы ( .txt ), которые содержат цифры в имени файла:

  data_01.txt
data_03.txt
data_03_backup.txt
data_02_backup.txt
data_02.txt
data_01_backup.txt
  

glob упрощает рекурсивный поиск файлов в подкаталогах:

>>>
  >>> импорт глоб
>>> для файла в глоб.iglob ('** / *. py', рекурсивный = True):
...     распечатать файл)
  

В этом примере используется glob.iglob () для поиска файлов .py в текущем каталоге и подкаталогах. Передача recursive = True в качестве аргумента функции .iglob () заставляет ее искать файлы .py в текущем каталоге и любых подкаталогах. Разница между glob.iglob () и glob.glob () заключается в том, что .iglob () возвращает итератор вместо списка.

Выполнение указанной выше программы дает следующее:

  admin.py
tests.py
под_каталог / file1.py
под_каталог / file2.py
  

pathlib содержит аналогичные методы для создания гибких списков файлов. В приведенном ниже примере показано, как можно использовать .Path.glob () для перечисления типов файлов, начинающихся с буквы p :

. >>>
  >>> from pathlib import Path
>>> p = Путь ('.')
>>> для имени в p.glob ('*.п*'):
... печать (имя)

admin.py
scraper.py
docs.pdf
  

Вызов p.glob ('*. P *') возвращает объект-генератор, который указывает на все файлы в текущем каталоге, которые начинаются с буквы p в своем расширении.

Path.glob () аналогичен os.glob () , рассмотренному выше. Как видите, pathlib сочетает в себе многие из лучших функций модулей os , os.path и glob в одном модуле, что делает его использование приятным.

Напомним, вот таблица функций, которые мы рассмотрели в этом разделе:

Функция Описание
начинается с () Проверяет, начинается ли строка с указанного шаблона и возвращает Истина или Ложь
заканчивается с () Проверяет, заканчивается ли строка указанным шаблоном и возвращает Истина или Ложь
fnmatch.fnmatch (имя файла, шаблон) Проверяет, соответствует ли имя файла шаблону и возвращает Истина или Ложь
glob.glob () Возвращает список имен файлов, соответствующих шаблону
pathlib.Path.glob () Находит шаблоны в именах путей и возвращает объект-генератор

Обход каталогов и обработка файлов

Обычная задача программирования — это обход дерева каталогов и обработка файлов в дереве.Давайте посмотрим, как для этого можно использовать встроенную функцию Python os.walk () . os.walk () используется для создания имени файла в дереве каталогов путем обхода дерева сверху вниз или снизу вверх. В этом разделе мы будем работать со следующим деревом каталогов:

 .
|
├── folder_1 /
| ├── file1.py
| ├── file2.py
| └── file3.py
|
├── folder_2 /
| ├── file4.py
| ├── file5.py
| └── file6.py
|
├── test1.txt
└── test2.txt
  

Ниже приведен пример, показывающий, как вывести список всех файлов и каталогов в дереве каталогов с помощью ОС .прогулка () .

os.walk () по умолчанию перемещается по каталогам сверху вниз:

  # Обход дерева каталогов и печать имен каталогов и файлов
для dirpath, dirnames, файлов в os.walk ('.'):
    print (f'Найденный каталог: {dirpath} ')
    для имя_файла в файлах:
        печать (имя_файла)
  

os.walk () возвращает три значения на каждой итерации цикла:

  1. Имя текущей папки

  2. Список папок в текущей папке

  3. Список файлов в текущей папке

На каждой итерации он распечатывает имена подкаталогов и файлов, которые он находит:

  Найденный каталог:.test1.txt
test2.txt
Найден каталог: ./folder_1
file1.py
file3.py
file2.py
Найден каталог: ./folder_2
file4.py
file5.py
file6.py
  

Чтобы пройти по дереву каталогов снизу вверх, передайте аргумент ключевого слова topdown = False в os.walk () :

  для dirpath, dirnames, files в os.walk ('.', Topdown = False):
    print (f'Найденный каталог: {dirpath} ')
    для имя_файла в файлах:
        печать (имя_файла)
  

Передача аргумента topdown = False даст os.walk () распечатывает файлы, которые он находит в подкаталогах , сначала :

  Найденный каталог: ./folder_1
file1.py
file3.py
file2.py
Найден каталог: ./folder_2
file4.py
file5.py
file6.py
Найден каталог:.
test1.txt
test2.txt
  

Как видите, программа запускается с перечисления содержимого подкаталогов перед выводом содержимого корневого каталога. Это очень полезно в ситуациях, когда вы хотите рекурсивно удалить файлы и каталоги.Вы узнаете, как это сделать, в следующих разделах. По умолчанию os.walk не переходит к символическим ссылкам, которые разрешаются в каталоги. Это поведение можно изменить, вызвав его с аргументом followlinks = True .

Создание временных файлов и каталогов

Python предоставляет удобный модуль для создания временных файлов и каталогов под названием tempfile .

tempfile может использоваться для открытия и временного хранения данных в файле или каталоге во время работы вашей программы. tempfile обрабатывает удаление временных файлов, когда ваша программа завершает работу с ними.

Вот как создать временный файл:

  из временного файла импорт временного файла

# Создать временный файл и записать в него данные
fp = временный файл ('ш + т')
fp.write ('Привет, вселенная!')

# Вернуться к началу и прочитать данные из файла
fp.seek (0)
данные = fp.read ()

# Закройте файл, после чего он будет удален
fp.close ()
  

Первым шагом является импорт TemporaryFile из модуля tempfile .Затем создайте объект, подобный файлу, с помощью метода TemporaryFile () , вызвав его и передав режим, в котором вы хотите открыть файл. Это создаст и откроет файл, который можно использовать в качестве области временного хранения.

В приведенном выше примере используется режим 'w + t' , что заставляет tempfile создавать временный текстовый файл в режиме записи. Нет необходимости давать временному файлу имя файла, поскольку он будет уничтожен после завершения выполнения сценария.

После записи в файл вы можете прочитать его и закрыть, когда закончите обработку.После закрытия файла он будет удален из файловой системы. Если вам нужно присвоить временным файлам имя tempfile , используйте tempfile.NamedTemporaryFile () .

Временные файлы и каталоги, созданные с помощью tempfile , хранятся в специальном системном каталоге для хранения временных файлов. Python ищет в стандартном списке каталогов тот, в котором пользователь может создавать файлы.

В Windows это каталоги C: \ TEMP , C: \ TMP , \ TEMP и \ TMP в указанном порядке.На всех других платформах каталоги / tmp , / var / tmp и / usr / tmp в указанном порядке. В крайнем случае, tempfile сохранит временные файлы и каталоги в текущем каталоге.

.TemporaryFile () также является диспетчером контекста, поэтому его можно использовать вместе с оператором with . Использование диспетчера контекста обеспечивает автоматическое закрытие и удаление файла после того, как он был прочитан:

  с TemporaryFile ('w + t') как fp:
    fp.write ('Привет, вселенная!')
    fp.seek (0)
    fp.read ()
# Файл закрыт и удален
  

Создает временный файл и считывает из него данные. Как только содержимое файла считывается, временный файл закрывается и удаляется из файловой системы.

tempfile также можно использовать для создания временных каталогов. Давайте посмотрим, как это сделать, используя tempfile.TemporaryDirectory () :

>>>
  >>> импортировать временный файл
>>> с временным файлом.TemporaryDirectory () как tmpdir:
... print ('Создан временный каталог', tmpdir)
... os.path.exists (tmpdir)
...
Создан временный каталог / tmp / tmpoxbkrm6c
Истинный

>>> # Содержимое каталога было удалено
...
>>> tmpdir
'/ tmp / tmpoxbkrm6c'
>>> os.path.exists (tmpdir)
Ложь
  

Вызов tempfile.TemporaryDirectory () создает временный каталог в файловой системе и возвращает объект, представляющий этот каталог. В приведенном выше примере каталог создается с помощью диспетчера контекста, а имя каталога хранится в tmpdir .Третья строка выводит имя временного каталога, и os.path.exists (tmpdir) подтверждает, действительно ли каталог был создан в файловой системе.

После того, как диспетчер контекста выходит из контекста, временный каталог удаляется, и вызов os.path.exists (tmpdir) возвращает Ложь , что означает, что каталог был успешно удален.

Удаление файлов и каталогов

Вы можете удалять отдельные файлы, каталоги и целые деревья каталогов, используя методы, найденные в модулях os , shutil и pathlib .В следующих разделах описывается, как удалить файлы и каталоги, которые вам больше не нужны.

Удаление файлов в Python

Чтобы удалить один файл, используйте pathlib.Path.unlink () , os.remove () . или os.unlink () .

os.remove () и os.unlink () семантически идентичны. Чтобы удалить файл с помощью os.remove () , выполните следующие действия:

  импорт ОС

data_file = 'C: \ Users \ vuyisile \ Desktop \ Test \ data.текст'
os.remove (файл_данных)
  

Удаление файла с помощью os.unlink () аналогично тому, как это делается с помощью os.remove () :

  импорт ОС

data_file = 'C: \ Users \ vuyisile \ Desktop \ Test \ data.txt'
os.unlink (файл_данных)
  

Вызов .unlink () или .remove () для файла удаляет файл из файловой системы. Эти две функции вызовут ошибку OSError , если переданный им путь указывает на каталог, а не на файл.Чтобы избежать этого, вы можете либо проверить, что то, что вы пытаетесь удалить, на самом деле является файлом, и удалить его только в том случае, если это так, либо вы можете использовать обработку исключений для обработки ошибки OSError :

  импорт ОС

data_file = 'главная / data.txt'

# Если файл существует, удалите его
если os.path.isfile (файл_данных):
    os.remove (файл_данных)
еще:
    print (f'Error: {data_file} недопустимое имя файла ')
  

os.path.isfile () проверяет, действительно ли data_file является файлом.Если это так, он удаляется вызовом os.remove () . Если файл_данных указывает на папку, на консоль выводится сообщение об ошибке.

В следующем примере показано, как использовать обработку исключений для обработки ошибок при удалении файлов:

  импорт ОС

data_file = 'главная / data.txt'

# Использовать обработку исключений
пытаться:
    os.remove (файл_данных)
кроме OSError как e:
    print (f'Error: {data_file}: {e.strerror} ')
  

Приведенный выше код пытается сначала удалить файл перед проверкой его типа.Если data_file на самом деле не является файлом, то возникшая ошибка OSError обрабатывается в , за исключением предложения , и на консоль выводится сообщение об ошибке. Распечатываемое сообщение об ошибке отформатировано с использованием f-строк Python.

Наконец, вы также можете использовать pathlib.Path.unlink () для удаления файлов:

  из пути импорта pathlib

data_file = Путь ('home / data.txt')

пытаться:
    data_file.unlink ()
кроме IsADirectoryError как e:
    print (f'Error: {data_file}: {e.strerror} ')
  

Это создает объект Path с именем data_file , который указывает на файл. Вызов .remove () для data_file удалит home / data.txt . Если data_file указывает на каталог, возникает ошибка IsADirectoryError . Стоит отметить, что указанная выше программа Python имеет те же разрешения, что и пользователь, запускающий ее. Если у пользователя нет разрешения на удаление файла, возникает ошибка PermissionError .

Удаление каталогов

Стандартная библиотека предлагает следующие функции для удаления каталогов:

  • os.rmdir ()
  • pathlib.Path.rmdir ()
  • shutil.rmtree ()

Чтобы удалить отдельный каталог или папку, используйте os.rmdir () или pathlib.rmdir () . Эти две функции работают, только если каталог, который вы пытаетесь удалить, пуст. Если каталог не пустой, возникает ошибка OSError .Вот как удалить папку:

  импорт ОС

trash_dir = 'мои_документы / bad_dir'

пытаться:
    os.rmdir (trash_dir)
кроме OSError как e:
    print (f'Error: {trash_dir}: {e.strerror} ')
  

Здесь каталог trash_dir удаляется путем передачи его пути в os.rmdir () . Если каталог не пустой, на экран выводится сообщение об ошибке:

>>>
  Traceback (последний вызов последний):
  Файл '', строка 1, в 
OSError: [Errno 39] Каталог не пуст: 'my_documents / bad_dir'
  

В качестве альтернативы вы можете использовать pathlib для удаления каталогов:

  из пути импорта pathlib

trash_dir = Путь ('my_documents / bad_dir')

пытаться:
    trash_dir.rmdir ()
кроме OSError как e:
    print (f'Error: {trash_dir}: {e.strerror} ')
  

Здесь вы создаете объект Path , который указывает на каталог, который нужно удалить. Вызов .rmdir () для объекта Path удалит его, если он пуст.

Удаление всего дерева каталогов

Для удаления непустых каталогов и целых деревьев каталогов Python предлагает shutil.rmtree () :

  импортный шутил

trash_dir = 'мои_документы / bad_dir'

пытаться:
    шутил.rmtree (trash_dir)
кроме OSError как e:
    print (f'Error: {trash_dir}: {e.strerror} ')
  

Все в trash_dir удаляется при вызове shutil.rmtree () . Могут быть случаи, когда вы захотите рекурсивно удалить пустые папки. Вы можете сделать это, используя один из методов, описанных выше в сочетании с os.walk () :

  импорт ОС

для dirpath, dirnames, файлов в os.walk ('.', topdown = False):
    пытаться:
        os.rmdir (dirpath)
    кроме OSError как ex:
        проходить
  

Это перемещается по дереву каталогов и пытается удалить каждый найденный каталог.Если каталог не пустой, возникает ошибка OSError и этот каталог пропускается. В таблице ниже перечислены функции, рассматриваемые в этом разделе:

Функция Описание
os.remove () Удаляет файл и не удаляет каталоги
os.unlink () Идентичен os.remove () и удаляет один файл
pathlib.Путь.unlink () Удаляет файл без возможности удаления каталогов
os.rmdir () Удаляет пустой каталог
pathlib.Path.rmdir () Удаляет пустой каталог
shutil.rmtree () Удаляет все дерево каталогов и может использоваться для удаления непустых каталогов

Копирование, перемещение и переименование файлов и каталогов

Python поставляется с модулем shutil . shutil — это сокращение от служебных программ оболочки. Он обеспечивает ряд высокоуровневых операций с файлами для поддержки копирования, архивирования и удаления файлов и каталогов. В этом разделе вы узнаете, как перемещать и копировать файлы и каталоги.

Копирование файлов в Python

shutil предлагает несколько функций для копирования файлов. Чаще всего используются функции shutil.copy () и shutil.copy2 () . Чтобы скопировать файл из одного места в другое, используйте shutil.copy () , выполните следующие действия:

  импортный шутил

src = 'путь / к / file.txt'
dst = 'путь / к / каталог-назначения'
shutil.copy (src, dst)
  

shutil.copy () сопоставима с командой cp в системах на основе UNIX. shutil.copy (src, dst) скопирует файл src в расположение, указанное в dst . Если dst является файлом, содержимое этого файла заменяется содержимым src . Если dst — это каталог, то src будет скопирован в этот каталог. shutil.copy () копирует только содержимое файла и разрешения файла. Другие метаданные, такие как время создания и изменения файла, не сохраняются.

Чтобы сохранить все метаданные файла при копировании, используйте shutil.copy2 () :

  импортный шутил

src = 'путь / к / file.txt'
dst = 'путь / к / каталог-назначения'
shutil.copy2 (src, dst)
  

Использование .copy2 () сохраняет сведения о файле, такие как время последнего доступа, биты прав доступа, время последнего изменения и флаги.

Копирование каталогов

В то время как shutil.copy () копирует только один файл, shutil.copytree () копирует весь каталог и все, что в нем содержится. shutil.copytree (src, dest) принимает два аргумента: исходный каталог и целевой каталог, в который будут скопированы файлы и папки.

Вот пример того, как скопировать содержимое одной папки в другое место:

>>>
  >>> импорт шутил
>>> шутил.copytree ('данные_1', 'данные1_backup')
'data1_backup'
  

В этом примере .copytree () копирует содержимое data_1 в новое место data1_backup и возвращает целевой каталог. Целевой каталог еще не должен существовать. Он будет создан вместе с отсутствующими родительскими каталогами. shutil.copytree () — хороший способ сделать резервную копию ваших файлов.

Перемещение файлов и каталогов

Чтобы переместить файл или каталог в другое место, используйте shutil.переместить (src, dst) .

src — это файл или каталог, который нужно переместить, а dst — это место назначения:

>>>
  >>> импорт шутил
>>> shutil.move ('каталог_1 /', 'резервная копия /')
'резервное копирование'
  

shutil.move ('dir_1 /', 'backup /') перемещает dir_1 / в backup / , если существует backup / . Если резервная копия / не существует, dir_1 / будет переименована в резервная копия .

Переименование файлов и каталогов

Python включает os.rename (src, dst) для переименования файлов и каталогов:

>>>
  >>> os.rename ('first.zip', 'first_01.zip')
  

Строка выше переименует first.zip в first_01.zip . Если целевой путь указывает на каталог, это вызовет ошибку OSError .

Другой способ переименовать файлы или каталоги — использовать rename () из модуля pathlib :

>>>
  >>> from pathlib import Path
>>> data_file = Путь ('data_01.текст')
>>> файл_данных.rename ('data.txt')
  

Чтобы переименовать файлы с помощью pathlib , вы сначала создаете объект pathlib.Path () , который содержит путь к файлу, который вы хотите заменить. Следующим шагом является вызов rename () для объекта пути и передача нового имени файла для файла или каталога, который вы переименовываете.

Архивирование

Архивы — это удобный способ упаковать несколько файлов в один. Двумя наиболее распространенными типами архивов являются ZIP и TAR.Написанные вами программы Python могут создавать, читать и извлекать данные из архивов. В этом разделе вы узнаете, как читать и писать в оба формата архивов.

Чтение файлов ZIP

Модуль zipfile — это модуль низкого уровня, который является частью стандартной библиотеки Python. zipfile имеет функции, которые упрощают открытие и извлечение файлов ZIP. Чтобы прочитать содержимое ZIP-файла, первое, что нужно сделать, это создать объект ZipFile . ZipFile Объекты аналогичны файловым объектам, созданным с помощью open () . ZipFile также является диспетчером контекста и поэтому поддерживает с оператором :

  импорт zip-файла

с zipfile.ZipFile ('data.zip', 'r') как zipobj:
  

Здесь вы создаете объект ZipFile , передавая имя ZIP-файла для открытия в режиме чтения. После открытия ZIP-файла информация об архиве может быть доступна с помощью функций, предоставляемых модулем zipfile . Архив data.zip в приведенном выше примере был создан из каталога с именем data , который содержит всего 5 файлов и 1 подкаталог:

 .|
├── sub_dir /
| ├── bar.py
| └── foo.py
|
├── file1.py
├── file2.py
└── file3.py
  

Чтобы получить список файлов в архиве, вызовите namelist () для объекта ZipFile :

  импорт zip-файла

с zipfile.ZipFile ('data.zip', 'r') как zipobj:
    zipobj.namelist ()
  

Это дает список:

  ['file1.py', 'file2.py', 'file3.py', 'sub_dir /', 'sub_dir / bar.py', 'sub_dir / foo.py']
  

.namelist () возвращает список имен файлов и каталогов в архиве. Чтобы получить информацию о файлах в архиве, используйте .getinfo () :

  импорт zip-файла

с zipfile.ZipFile ('data.zip', 'r') как zipobj:
    bar_info = zipobj.getinfo ('подкаталог / bar.py')
    bar_info.file_size
  

Вот результат:

.getinfo () возвращает объект ZipInfo , в котором хранится информация об одном члене архива.Чтобы получить информацию о файле в архиве, вы передаете его путь в качестве аргумента в .getinfo () . Используя функцию getinfo () , вы можете получить информацию об элементах архива, например дату последнего изменения файлов, их сжатые размеры и полные имена файлов. При обращении к .file_size получает исходный размер файла в байтах.

В следующем примере показано, как получить дополнительные сведения об архивных файлах в Python REPL. Предположим, что модуль zipfile был импортирован, а bar_info — это тот же объект, который вы создали в предыдущих примерах:

>>>
  >>> bar_info.date_time
(2018, 10, 7, 23, 30, 10)
>>> bar_info.compress_size
2856
>>> bar_info.filename
'sub_dir / bar.py'
  

bar_info содержит подробную информацию о bar.py , такую ​​как размер в сжатом виде и полный путь.

В первой строке показано, как получить дату последнего изменения файла. В следующей строке показано, как получить размер файла после сжатия. Последняя строка показывает полный путь к bar.py в архиве.

ZipFile поддерживает протокол диспетчера контекста, поэтому вы можете использовать его с с оператором .Это автоматически закроет объект ZipFile после того, как вы закончите с ним. Попытка открыть или извлечь файлы из закрытого объекта ZipFile приведет к ошибке.

Создание новых ZIP-архивов

Чтобы создать новый ZIP-архив, откройте объект ZipFile в режиме записи ( w ) и добавьте файлы, которые хотите заархивировать:

>>>
  >>> импортировать zip-файл

>>> file_list = ['file1.py', 'sub_dir /', 'sub_dir / bar.py ',' sub_dir / foo.py ']
>>> с zipfile.ZipFile ('new.zip', 'w') как new_zip:
... для имени в file_list:
... new_zip.write (имя)
  

В этом примере new_zip открывается в режиме записи, и каждый файл в file_list добавляется в архив. Когда с набором операторов завершается, new_zip закрывается. Открытие ZIP-файла в режиме записи стирает содержимое архива и создает новый архив.

Чтобы добавить файлы в существующий архив, откройте объект ZipFile в режиме добавления и затем добавьте файлы:

>>>
  >>> # Открываем объект ZipFile в режиме добавления
>>> с zip-файлом.ZipFile ('new.zip', 'a') как new_zip:
... new_zip.write ('data.txt')
... new_zip.write ('latin.txt')
  

Здесь вы открываете архив new.zip , созданный в предыдущем примере, в режиме добавления. Открытие объекта ZipFile в режиме добавления позволяет добавлять новые файлы в ZIP-файл, не удаляя его текущее содержимое. После добавления файлов в ZIP-файл инструкция with выходит из контекста и закрывает ZIP-файл.

Открытие архива TAR

Файлы

TAR представляют собой несжатые файловые архивы, такие как ZIP.Их можно сжать с помощью методов сжатия gzip, bzip2 и lzma. Класс TarFile позволяет читать и записывать архивы TAR.

Сделайте это, чтобы прочитать из архива:

  импортный tarfile

с tarfile.open ('example.tar', 'r') как tar_file:
    печать (tar_file.getnames ())
  

tarfile объекта открываются как большинство файловых объектов. У них есть функция open () , которая принимает режим, определяющий способ открытия файла.

Используйте режимы 'r' , 'w' или 'a' , чтобы открыть несжатый файл TAR для чтения, записи и добавления соответственно. Чтобы открыть сжатые файлы TAR, передайте tarfile.open () аргумент режима, который имеет форму filemode [: сжатие] . В таблице ниже перечислены возможные режимы открытия файлов TAR:

Режим Действие
r Открывает архив для чтения с прозрачным сжатием
r: gz Открывает архив для чтения со сжатием gzip
r: bz2 Открывает для чтения архив со сжатием bzip2
r: xz Открывает архив для чтения со сжатием lzma
w Открывает архив для записи без сжатия
ш: gz Открывает архив для записи в сжатом формате gzip
ширина: xz Открывает архив для сжатой записи lzma
Открывает архив для добавления без сжатия

.open () по умолчанию использует режим 'r' . Чтобы прочитать несжатый файл TAR и получить имена файлов в нем, используйте .getnames () :

>>>
  >>> импорт tarfile

>>> tar = tarfile.open ('example.tar', mode = 'r')
>>> tar.getnames ()
['CONTRIBUTING.rst', 'README.md', 'app.py']
  

Возвращает список с именами содержимого архива.

Примечание: Чтобы показать вам, как использовать различные методы объекта tarfile , файл TAR в примерах открывается и закрывается вручную в интерактивном сеансе REPL.

Взаимодействие с файлом TAR таким образом позволяет увидеть результат выполнения каждой команды. Обычно вы хотите использовать диспетчер контекста для открытия файловых объектов.

К метаданным каждой записи в архиве можно получить доступ с помощью специальных атрибутов:

>>>
  >>> для ввода в tar.getmembers ():
... печать (entry.name)
... print ('Изменено:', time.ctime (entry.mtime))
... print ('Размер:', размер записи, 'байты')
...     Распечатать()
СОДЕЙСТВИЕ.первый
 Изменено: Сб, 1 ноября, 09:09:51 2018
 Размер: 402 байта

README.md
 Обновлено: 3 ноября, сб, 07:29:40 2018
 Размер: 5426 байтов

app.py
 Обновлено: 3 ноября, сб, 07:29:13 2018
 Размер: 6218 байтов
  

В этом примере вы просматриваете список файлов, возвращаемых функцией .getmembers () , и распечатываете атрибуты каждого файла. Объекты, возвращаемые функцией .getmembers () , имеют атрибуты, к которым можно получить доступ программно, например имя, размер и время последнего изменения каждого из файлов в архиве.После чтения или записи в архив его необходимо закрыть, чтобы освободить ресурсы системы.

Создание новых архивов TAR

Вот как это сделать:

>>>
  >>> импорт tarfile

>>> file_list = ['app.py', 'config.py', 'CONTRIBUTORS.md', 'tests.py']
>>> с tarfile.open ('packages.tar', mode = 'w') как tar:
... для файла в file_list:
... tar.add (файл)

>>> # Прочитать содержимое только что созданного архива
>>> с tarfile.open ('package.tar', mode = 'r') как t:
... для члена в t.getmembers ():
... печать (имя члена)
app.py
config.py
CONTRIBUTORS.md
tests.py
  

Сначала вы составляете список файлов, которые нужно добавить в архив, чтобы вам не приходилось добавлять каждый файл вручную.

В следующей строке используется с менеджером контекста для открытия нового архива с именем packages.tar в режиме записи. Открытие архива в режиме записи ( 'w' ) позволяет вам записывать в архив новые файлы.Все существующие файлы в архиве удаляются, и создается новый архив.

После того, как архив создан и заполнен, с менеджером контекста автоматически закрывает его и сохраняет в файловой системе. Последние три строки открывают только что созданный архив и распечатывают имена содержащихся в нем файлов.

Чтобы добавить новые файлы в существующий архив, откройте архив в режиме добавления ( 'a' ):

>>>
  >>> с tarfile.open ('package.tar', mode = 'a') как tar:
... tar.add ('foo.bar')

>>> с tarfile.open ('package.tar', mode = 'r') как tar:
... для члена tar.getmembers ():
... печать (имя члена)
app.py
config.py
CONTRIBUTORS.md
tests.py
foo.bar
  

Открытие архива в режиме добавления позволяет добавлять в него новые файлы, не удаляя уже существующие.

Работа со сжатыми архивами

tarfile также может читать и записывать архивы TAR, сжатые с использованием сжатия gzip, bzip2 и lzma.Для чтения или записи в сжатый архив используйте tarfile.open () , передав режим, соответствующий типу сжатия.

Например, для чтения или записи данных в архив TAR, сжатый с помощью gzip, используйте режимы 'r: gz' или 'w: gz' соответственно:

>>>
  >>> files = ['app.py', 'config.py', 'tests.py']
>>> с tarfile.open ('packages.tar.gz', mode = 'w: gz') как tar:
... tar.add ('app.py')
... tar.add ('config.ру ')
... tar.add ('tests.py')

>>> с tarfile.open ('packages.tar.gz', mode = 'r: gz') как t:
... для члена в t.getmembers ():
... печать (имя члена)
app.py
config.py
tests.py
  

Режим 'w: gz' открывает архив для записи со сжатием gzip, а 'r: gz' открывает архив для чтения со сжатием gzip. Открытие сжатых архивов в режиме добавления невозможно. Чтобы добавить файлы в сжатый архив, вам необходимо создать новый архив.

Более простой способ создания архивов

Стандартная библиотека Python также поддерживает создание архивов TAR и ZIP с использованием высокоуровневых методов модуля shutil .Утилиты архивирования в shutil позволяют создавать, читать и извлекать архивы ZIP и TAR. Эти утилиты полагаются на модули нижнего уровня tarfile и zipfile .

Работа с архивами с использованием shutil.make_archive ()

shutil.make_archive () принимает как минимум два аргумента: имя архива и формат архива.

По умолчанию он сжимает все файлы в текущем каталоге в формат архива, указанный в аргументе формат .Вы можете передать необязательный аргумент root_dir для сжатия файлов в другом каталоге. .make_archive () поддерживает форматы архивов zip , tar , bztar и gztar .

Вот как создать архив TAR с помощью shutil :

  импортный шутил

# shutil.make_archive (базовое_имя, формат, корневой_каталог)
shutil.make_archive ('данные / резервная копия', 'tar', 'данные /')
  

Это копирует все в data / и создает архив под названием backup.tar в файловой системе и возвращает его имя. Чтобы распаковать архив, вызовите .unpack_archive () :

  shutil.unpack_archive ('backup.tar', 'extract_dir /')
  

Вызов .unpack_archive () и передача имени архива и целевого каталога извлекает содержимое backup.tar в extract_dir / . ZIP-архивы можно создавать и извлекать таким же образом.

Чтение нескольких файлов

Python поддерживает чтение данных из нескольких входных потоков или из списка файлов через модуль fileinput .Этот модуль позволяет быстро и легко перебирать содержимое одного или нескольких текстовых файлов. Вот типичный способ использования файла ввода :

  импорт файла ввода
для строки в fileinput.input ()
    процесс (линия)
  

fileinput получает входные данные из аргументов командной строки, переданных в sys.argv по умолчанию.

Использование входа файла для перебора нескольких файлов

Давайте воспользуемся вводом файла , чтобы создать грубую версию общей утилиты UNIX cat .Утилита cat последовательно читает файлы, записывая их на стандартный вывод. Если в аргументах командной строки указано более одного файла, cat объединит текстовые файлы и отобразит результат в терминале:

  # Файл: fileinput-example.py
импортировать файл
import sys

файлы = fileinput.input ()
для строки в файлах:
    если fileinput.isfirstline ():
        print (f '\ n --- Чтение {fileinput.filename ()} ---')
    print ('->' + строка, конец = '')
Распечатать()
  

Выполнение этого для двух текстовых файлов в моем текущем каталоге дает следующий результат:

  $ python3 fileinput-example.py bacon.txt cupcake.txt
--- Чтение bacon.txt ---
 -> Пряный халапеньо бекон ipsum dolor amet in aute est qui enim aliquip,
 -> irure cillum голень elit.
 -> Doner jowl shank ea упражнение landjaeger incididunt ut porchetta.
 -> Вырезка, бекон, аликвип купидатат, цыпленок, цыпленок, анимешка и свинья.
 -> Донер с тремя наконечниками, кевин силлум, ветчина, вениам, коровий гамбургер.
 -> Индейка свиная корейка купидатат филе миньон капикола грудинка купим объявление в.
 -> Ball tip dolor do magna labouris nisi pancetta nostrud doner.--- Чтение cupcake.txt ---
 -> Кекс ipsum dolor sit amet candy Я люблю чизкейк кекс.
 -> Посыпать кекс сахарной ватой.
 -> Жевательные конфеты макаруны марципановые марципановые марципаны марципановые марципаны марципановые мармеладки.
  

fileinput позволяет получить дополнительную информацию о каждой строке, например, является ли она первой строкой ( .isfirstline () ), номером строки ( .lineno () ) и именем файла (. имя файла () ). Вы можете прочитать больше об этом здесь.

Заключение

Теперь вы знаете, как использовать Python для выполнения наиболее распространенных операций с файлами и группами файлов.Вы узнали о различных встроенных модулях, используемых для чтения, поиска и управления ими.

Теперь вы готовы использовать Python для:

  • Получить содержимое каталога и свойства файла
  • Создание каталогов и деревьев каталогов
  • Найти шаблоны в именах файлов
  • Создание временных файлов и каталогов
  • Перемещение, переименование, копирование и удаление файлов или каталогов
  • Чтение и извлечение данных из архивов разных типов
  • Чтение нескольких файлов одновременно с использованием файлового ввода

Работа с файлами и папками в R-Ultimate Guide

[Эта статья была впервые опубликована на сайте Methods — finnstats и любезно предоставлена ​​R-блогерам].(Вы можете сообщить о проблеме с содержанием на этой странице здесь)
Хотите поделиться своим контентом на R-блоггерах? щелкните здесь, если у вас есть блог, или здесь, если у вас его нет.

Работа с файлами и папками в R. В этом руководстве мы рассмотрим, как работать с файлами и папками в R.

Работа с текущим каталогом. Если вы не укажете иное, все документы могут быть изучены и сохранены в рабочем каталоге.

Следовательно, основной элемент, который вы хотите понять, — это способ получить и настроить операционный каталог.

1. рабочий каталог

Если вы хотите получить рабочий каталог, используйте

 getwd () 

datatable editor-DT package в R »Shiny, R Markdown и R»

2. установить рабочий каталог

Если вы хотите установить рабочий каталог, тогда

 setwd ("D: / Имя папки") 

Предположим, что если вы хотите создать подпапку в текущем каталоге, вы можете выбрать команду вставки и указать рабочий каталог.

 setwd (paste0 (getwd (), "/ SubFolderName")) 

Если вы используете RStudio, нажмите Ctrl + Shift + H и выберите желаемый каталог.

3. Список файлов

Предположим, что если вы хотите определить список файлов в определенной папке, вы можете выбрать list.files ().

Например, список файлов в определенной папке

 list.files (path = "D: / RStudio / Foldername /") 

Вы также можете получить файлы из просматриваемой папки, просто используйте

 лист.файлы (путь = choose.dir ()) 

Проверка существования файла или папки

семейство приложений в r apply (), lapply (), sapply (), mapply () и tapply () »

4. Файл существует

Предположим, если вы хотите идентифицировать файл rawdata.csv, который существует в рабочем каталоге, тогда

 file.exists ("rawdata.csv") 

5. Создание каталога

Если вы хотите создать новый каталог, вам будет полезна dir.create ().

Представьте, что вы хотите проверить, существует ли папка «Изображения» в текущем каталоге, если нет, то создаст новый каталог.

 ifelse (! Dir.exists ("Изображения"), dir.create ("Изображения"), "Папка уже существует") 

Если вы укажете рекурсивный = TRUE, тогда можно будет идентифицировать все файлы в подпапках

 list.files (рекурсивный = ИСТИНА) 

file_access (), file_exists (), dir_exists (), link_exists (): запрос наличия и прав доступа

6. ФИО

Предположим, если вы хотите получить полное имя (путь и имя файла) каждого файла, используйте

 лист.файлы (full.name = TRUE) 

Корреляционный анализ Различные типы графиков в R »

7. Пустой файл

Если вы хотите создать пустой файл, тогда

 file.create ("new_text.txt")
file.create ("новое_слово.docx")
file.create ("new_csv.csv") 

dir_create (), link_create (): создавать файлы, каталоги или ссылки

Вы можете использовать sapply и создать n файлов.

N = 10

 sapply (paste0 ("файл", 1: N, ".csv "), file.create) 

Работа с файлами и папками в R

8. Изменить файл

file_chmod (): изменить права доступа к файлу

file_chown (): изменить владельца или группу файла

9. Переместить файл

Большинство из нас хотят скопировать файлы из одной папки в другую, поэтому file.copy будет полезен для этого.

 file.copy ("D: /RStudio/source_file_tocopy.txt", "D: / RStudio / NewFolder /") 

Приведенная выше команда скопирует файл из одного места в другое с тем же именем файла, и, если вы укажете указанное имя, соответственно изменит имя файла.

Список файлов в любой подпапке, которую вы хотите записать, а затем использовать рекурсивно.

Анализ главных компонентов (PCA) в R »

dir_copy (), link_copy (): копирование файлов, каталогов или ссылок

 list.files ("D: / путь / к / где-то / еще", рекурсивный = ИСТИНА) 

Если папка содержит огромное количество файлов, то выполнение команды приведет к задержке во времени.

Предположим, что если вы хотите получить полные имена, тогда

 лист.файлы ("D: / путь / к / где-то / еще", full.names = ИСТИНА, рекурсивный = ИСТИНА) 

10. Шаблон

Представьте, что вы хотите вывести только CSV-файлы, тогда вы можете использовать шаблон.

 list.files (pattern = ".csv") 

рекурсивно перечислить все файлы CSV через каждую подпапку

 list.files (шаблон = ".csv", рекурсивный = ИСТИНА) 

Предположим, вы хотите прочитать все файлы CSV из определенной папки или текущего рабочего каталога.

 ClubbedFile



  

11.Снимок файла

Вы можете использовать моментальный снимок файла, чтобы получить моментальный снимок файла текущего каталога

 снимок



 

fileSnapshot возвращает список, который здесь мы будем просто называть «моментальным снимком». Наиболее полезную информацию можно получить, обратившись к «info»:

Таким образом, мы можем легко получить следующую информацию

Размер

указывает размер файла

isdir указывает, является ли файл каталогом? ==> ИСТИНА или ЛОЖЬ

Режим

указывает права доступа к файлам в восьмеричном формате

mtime указывает последнюю измененную метку времени

ctime указывает созданную отметку времени

atime указывает отметку времени последнего обращения

exe указывает тип исполняемого файла (или «нет», если не исполняемый файл)

Линейный дискриминантный анализ в R »Прогнозирование LDA»

12.Информация о файле

file.info также похож на fileSnapshot, за исключением того, что он возвращает одну запись информации, соответствующую входному файлу.

 file.info ("myfile.csv") 

file.ctime: - Если вы хотите получить только созданную временную метку файла, вызовите file.ctime:

file.mtime: - Получение последней измененной отметки времени аналогично приведенному выше, за исключением того, что мы используем file.mtime:

13. Отменить связь с файлом

Очевидно, что если мы имеем дело с большим количеством файлов, нам нужно удалить некоторые файлы, а затем разорвать связь или файл.функции удаления будут более полезными.

 отменить связь ("myfile.csv")
file.remove ("myfile.csv") 

Удалить каталог, нужно добавить рекурсивный = ИСТИНА

 unlink ("some_directory", recursive = TRUE) 

file_delete (), dir_delete (), link_delete (): удаление файлов, каталогов или ссылок

14. Базовое имя

Получить базовое имя файла можно с помощью функции basename:

 базовое имя ("D: /path/to/file.txt") 

Приведенный выше код вернет «файл.txt »

Анализ временных рядов в R »Декомпозиция и прогнозирование»

15. Имя каталога

Как получить имя каталога для файла

 имя каталога ("D: /path/to/file.txt") 

Это вернет «D: / путь / к»

Работа с файлами и папками в R

16. Расширение файла

Как получить расширение файла

Библиотека
 (инструменты)
file_ext ("D: /path/to/file.txt") # возвращает "txt"
file_ext ("C: / путь / к / файлу.csv ") # возвращает csv 

17. Откройте файл

Чтобы открыть или запустить файл, используйте функции shell.exec или file.show:

 shell.exec ("D: /path/to/file/file.txt") 

file.show для запуска файла

 file.show ("D: / путь / к / файлу / файлу.txt") 

Эти функции будут очень полезны при создании большего количества файлов и просмотре результатов.

Как открыть окно выбора файла

 file.choose () 

Выполнение этой команды вернет имя файла, выбранного пользователем.

18. Строки файлов

Как переместить файл

Библиотека
 (строки файлов)
file.move («D: /path/to/file/some_file.txt», «D: / some / other / path») 

Здесь первый аргумент - это имя файла, который вы хотите переместить, а второй аргумент - это каталог назначения.

Деревья решений в R »Классификация и регрессия»

19. Манипуляции с траекторией

path (), path_wd (): создать путь к файлу или каталогу

file_temp (), path_temp (): создать имена для временных файлов

path_expand (), path_expand_r (), path_home (), path_home_r (): поиск домашнего каталога пользователя

path_file () path_dir () path_ext () path_ext_remove () path_ext_set (): манипулировать путями к файлам

path_file () возвращает часть пути, содержащую имя файла,

path_dir () возвращает часть каталога,

path_ext () возвращает последнее расширение (если есть) для пути,

path_ext_remove () удаляет последнее расширение и возвращает оставшуюся часть пути,

path_ext_set () заменяет расширение новым расширением.Если расширение отсутствует, добавляется новое расширение.

path_filter (): Отфильтровать пути

path_split: разбивает пути на части.

path_join: соединяет части вместе. Обратный к path_split (). См. Path (), чтобы объединить векторизованные строки в путь.

path_abs: возвращает нормализованную абсолютную версию пути.

path_norm: устраняет. ссылается и рационализирует высокоуровневые .. ссылки, поэтому A /./ B и A / foo /../ B становятся A / B, но../B не изменено. Если один из путей является символической ссылкой, это может изменить значение пути, поэтому рассмотрите возможность использования вместо этого path_real ().

path_rel: вычисляет путь относительно начального пути, который может быть абсолютным или относительным путем.

path_common: находит общие части двух (или более) путей.

path_has_parent: определить, есть ли у пути заданный родительский элемент. path_common: находит общие части двух (или более) путей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *