for(int i = 0;i<menuArray.length; i++)
{
Button b = new Button(this);
b.setText(menuArray[i]);
ll.addView(b);
}
Удалите приведенный ниже оператор
try {
x = count();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
и попробуйте указать высоту и ширину макета для всех макетов ..
with open("test.txt", "a") as myfile:
myfile.write("appended text")
Вероятно, вы хотите передать "a"
в качестве аргумента режима.
with open("foo", "a") as f:
f.write("cool beans...")
Существуют другие перестановки аргумента режима для обновления (+), усечения (w) и двоичного (b) режима, но начиная с только "a"
, это ваш лучший выбор.
file
затеняет встроенную функцию. Не используйте его для переменных.
– Mark Tolonen
16 January 2011 в 17:50
file
больше не встроен в Python 3. Даже в Python 2 он используется очень редко . Открытие файла является общей операцией. Это нормально использовать имя file
здесь, как на Python 2, так и на 3. Знайте, когда нужно быть непоследовательным.
– jfs
29 December 2014 в 03:12
, когда мы используем эту строку open(filename, "a")
, a
указывает на добавление файла, что означает возможность вставки дополнительных данных в существующий файл.
Вы можете просто использовать следующие строки для добавления текст в вашем файле
def FileSave(filename,content):
with open(filename, "a") as myfile:
myfile.write(content)
FileSave("test.txt","test1 \n")
FileSave("test.txt","test2 \n")
Вам нужно открыть файл в режиме добавления, установив «a» или «ab» в качестве режима. См. open () .
Когда вы открываете режим «a», позиция записи всегда находится в конце файла (добавление ).
Пример:
>>> with open('test1','wb') as f:
f.write('test')
>>> with open('test1','ab') as f:
f.write('koko')
>>> with open('test1','rb') as f:
f.read()
'testkoko'
. Вы можете открыть с помощью «a +», чтобы читать, искать назад и читать (но все записи все равно будут в конце файла!). Примечание. Использование «a» не совпадает с открытием с «w» и поиском конца файла - подумайте, что может произойти, если другая программа откроет файл и начнет писать между поиском и записью. В некоторых операционных системах открытие файла с помощью «a» гарантирует, что все ваши последующие записи будут добавляться атомарно в конец файла (даже если файл растет другими сообщениями).
A несколько подробнее о том, как работает режим «a» (, проверенный только на Linux ). Даже если вы будете искать назад, каждая запись будет добавляться в конец файла:
>>> f = open('test','a+') # Not using 'with' just to simplify the example REPL session
>>> f.write('hi')
>>> f.seek(0)
>>> f.read()
'hi'
>>> f.seek(0)
>>> f.write('bye') # Will still append despite the seek(0)!
>>> f.seek(0)
>>> f.read()
'hibye'
Фактически, [man5] manpage указывает:
Открытие файла в режиме добавления (a в качестве первого символа режима) приводит к тому, что все последующие операции записи в этот поток происходят в конце файла, как если бы он предшествовал вызову:
< / blockquote>fseek(stream, 0, SEEK_END);
Старый упрощенный ответ (не используя
with
):Пример: ( в реальной программе используйте
with
, чтобы закрыть файл - см. документация )>>> open("test","wb").write("test") >>> open("test","a+b").write("koko") >>> open("test","rb").read() 'testkoko'
with
- см. docs.python.org/2/whatsnew/2.6.html#pep-343-the-with-statement
– sinelaw
3 April 2013 в 15:07
Python имеет много вариантов от основных трех режимов, эти три режима:
'w' write text
'r' read text
'a' append text
Итак, чтобы добавить в файл, это так же просто, как:
f = open('filename.txt', 'a')
f.write('whatever you want to write here (in append mode) here.')
Тогда есть режимы, которые просто делают ваш код меньше строк:
'r+' read + write text
'w+' read + write text
'a+' append + read text
Наконец, существуют режимы чтения / записи в двоичном формате:
'rb' read binary
'wb' write binary
'ab' append binary
'rb+' read + write binary
'wb+' read + write binary
'ab+' append + read binary
Мы можем указать режим при открытии файла. В режиме мы указываем, хотим ли мы читать «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")
Я всегда это делаю,
f = open('filename.txt', 'a')
f.write("stuff")
f.close()
Это просто, но очень полезно.
f
другим функциям, те же функции, которые открывают файл, должны закрыть его. Синтаксис with
является предпочтительным способом выполнения этого.
– Andrew Palmer
26 June 2017 в 18:08
Вот мой сценарий, который в основном рассчитывает количество строк, затем добавляет, а затем подсчитывает их снова, чтобы у вас были доказательства, что это сработало.
shortPath = "../file_to_be_appended"
short = open(shortPath, 'r')
## this counts how many line are originally in the file:
long_path = "../file_to_be_appended_to"
long = open(long_path, 'r')
for i,l in enumerate(long):
pass
print "%s has %i lines initially" %(long_path,i)
long.close()
long = open(long_path, 'a') ## now open long file to append
l = True ## will be a line
c = 0 ## count the number of lines you write
while l:
try:
l = short.next() ## when you run out of lines, this breaks and the except statement is run
c += 1
long.write(l)
except:
l = None
long.close()
print "Done!, wrote %s lines" %c
## finally, count how many lines are left.
long = open(long_path, 'r')
for i,l in enumerate(long):
pass
print "%s has %i lines after appending new lines" %(long_path, i)
long.close()
with open(file, "a")
. Я, может быть, старомодный, но в чем преимущество надopen(file, "a") ... file.close()
– user 12 June 2013 в 17:33print("appended text", file=myfile)
также возможно, для более знакомого api. – Thomas Ahle 9 March 2014 в 21:44open()
не имеет жесткого кодаutf-8
. Он используетlocale.getpreferredencoding(False)
. Passencoding="utf-8"
явно, если знаете, что файл использует кодировку utf-8. – jfs 29 December 2014 в 02:56