Мы можем указать режим при открытии файла. В режиме мы указываем, хотим ли мы читать «r», писать «w» или добавлять «a» в файл. Мы также указываем, хотим ли мы открыть файл в текстовом режиме или в двоичном режиме.
По умолчанию используется чтение в текстовом режиме. В этом режиме мы получаем строки при чтении из файла.
blockquote>
- С другой стороны, двоичный режим возвращает байты, и это режим, который будет использоваться при работе с нетекстовым файлы, такие как изображения или файлы exe.
Режимы файлов Python Режим и описание
blockquote>
- 'r' Откройте файл для чтения. (по умолчанию)
- 'w' Откройте файл для записи. Создает новый файл, если он не существует или обрезает файл, если он существует.
- 'x' Откройте файл для эксклюзивного создания. Если файл уже существует, операция завершится неудачно.
- 'a' Открыть для добавления в конце файла без его усечения. Создает новый файл, если он не существует.
- 't' Открывается в текстовом режиме. (по умолчанию)
- 'b' Открыть в двоичном режиме.
- '+' Открыть файл для обновления (чтение и запись)
В Ваш случай добавить текст в файл, открыть файл в режиме «a», здесь кодировка является необязательным аргументом
f = open("test.txt",mode = 'a',encoding = 'utf-8') #or f = open("test.txt",mode = 'a+') #or if binary mode f = open("test.txt",mode = 'ab+')
Например:
with open("test.txt",'a',encoding = 'utf-8') as f: f.write("my first file\n") f.write("This file\n\n") f.write("contains three lines\n")
Я бы предложил использовать FindFirstFile () и FindNextFile () .
Другая, возможно, намного лучшая замена: https://github.com/tronkko/dirent
Если вам нужна быстрая замена при замене, вы также можете использовать:
http://www.two-sdg.demon.co.uk/curbralan/code/dirent/ dirent.html
Простой класс, который я нашел, который использует POSIX API для Win32
d_type
, это общее расширение, но не часть POSIX.
– Jonathan Wakely
28 February 2018 в 21:45
Ответ на этот вопрос во многом зависит от целевой платформы, которую вы компилируете.
MSVC ++ - это компилятор, поэтому я собираюсь предположить, что вы пытаетесь выполнить аналогичные действия, такие как opendir ( ) и readdir () на платформе Windows. В этом случае рассмотрим следующие ресурсы:
Вторая ссылка - это страница MSDN, в которой перечислены все функции, доступные в API платформы Windows, для взаимодействия с файловой системой. Вы обнаружите, что большинство операций с файлами в Windows начинаются с вызова функции CreateFile .
Отлично, в конце концов, это было не так сложно, мне пришлось использовать цикл do-while:
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
if((hFind = FindFirstFile("C:/some/folder/*.txt", &FindFileData)) != INVALID_HANDLE_VALUE){
do{
printf("%s\n", FindFileData.cFileName);
}while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
Это действительно лучше, потому что я могу использовать «* .txt» и т. д., делает это гораздо легче найти некоторые конкретные типы файлов, раньше мне приходилось писать собственную функцию соответствия для этого: D