У меня есть следующий раздел, чтобы напечатать файл ant в файл.python 3 print with extra characters
rsltFile = open('buildLog.txt', 'w')
p = subprocess.Popen('call ant compile', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
rsltFile.write("%s\n" % line)
print(line)
retval = p.wait()
Он работал отлично в питона 2,6 но распечатать некоторые дополнительные характер для каждой строки в питона 3.2, как это следующим образом:
b'Buildfile: C:\\workspace\\VCT2400_Service\\ServiceApplication\\build.xml\r\n'
b'\r\n'
b'init:\r\n'
b'\r\n'
b'clean:\r\n'
b' [mkdir] Created dir: C:\\workspace\\VCT2400_Service\\ServiceApplication\\classes\r\n'
b'\r\n'
b'compile:\r\n'
b' [javac] Compiling 492 source files to C:\\workspace\\VCT2400_Service\\ServiceApplication\\classes\r\n'
Те б» и \ r \ n ' являются дополнительными, не ожидайте их там.
'.readlines()' здесь избыточен (и, вероятно, менее эффективен, так как я полагаю, что он будет строить весь список выходных строк до начала итерации); вы можете просто обрабатывать сам объект файла как итератор. – geoffspear
как это сделать? Я новичок в python. – 5YrsLaterDBA
'для строки в p.stdout:' –