Самый короткий путь, вероятно, будет заключаться в использовании fileinput module . Например, следующее добавляет номера строк в файл, на месте:
import fileinput
for line in fileinput.input("test.txt", inplace=True):
print "%d: %s" % (fileinput.filelineno(), line),
. Что происходит здесь:
print
записывают обратно в исходный файл fileinput
имеет больше колоколов и свистов. Например, он может использоваться для автоматической работы со всеми файлами в sys.args[1:]
, без необходимости явно перебирать их. Начиная с Python 3.2, он также предоставляет удобный менеджер контекста для использования в инструкции with
.
Хотя fileinput
отлично подходит для сценариев throwaway, я бы с осторожностью использовал его в реальном коде потому что, по общему признанию, это не очень читаемо или знакомо. В реальном (производственном) коде стоит потратить еще несколько строк кода, чтобы сделать процесс явным и, следовательно, сделать код читаемым.
Есть два варианта:
Вы можете выполнить следующую команду в своем терминале:
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
И это заменит старый Java новым.
Начиная с Эль-Капитана, трудно удалить символическую ссылку /usr/bin/java
из-за введения новой политики «без корня».
Поэтому я просто добавил путь к последней версии Java (в моем случае это /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) в PATH
в моем файле .bashrc
:
# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH
Чтобы перезагрузить ваш .bashrc
для текущего сеанса, запустите source ~/.bashrc
в оболочке. Это нужно делать только для сеансов, которые были начаты до изменения файла .bashrc
.
Теперь используется последняя версия, когда вы используете java
в оболочке.
vi ~/.bash_profile
add
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Это говорит вашей целевой ссылке /usr/bin/java
использовать последний пакет Java 7, установленный в
/Library/Java/JavaVirtualMachines/
Таким образом, для JDK 1.7.0_17
JAVA_HOME
было бы:
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
Примечание. В последнее время в этой области произошли значительные изменения. переместите Mac OS X из собственных пакетов Java компании Appels в пакеты Java на основе Oracle. Вышеупомянутое решение работает нормально с Mac OS X 10.8.2
Установщик Oracle помещает Java в /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. И это не переписывает /usr/bin/java
. Итак, если вы выдадите
whereis java
в терминале, он вернет / usr / bin / java. (который в свою очередь указывает на /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
, который является версией Apple 1.6).
Итак, если вы хотите использовать новую версию Java, замените символическую ссылку /usr/bin/java
, чтобы она указала вместо /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
:
sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Могу ли я предложить вам взглянуть на инструмент Jenv
Это позволит вам в любое время переключаться между установленными JVM.
Просто как:
jenv global oracle-1.7
, а затем для тестирования:
jenv global oracle-1.6
И у вас есть гораздо больше команд.
в ударе:
vim ~/.bash_profile
добавляют
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
:wq
для сохранения java -version
, Но на самом деле это точки контура к jre не jdk.
, Если Вы хотите указать на путь к JDK, Вам нужно
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, можно перейти в /Library/Java/JavaVirtualMachines
, чтобы удостовериться, что Вы установили версию JDK, который Вы ожидали.