Я довольно новичок в программировании в целом, и просмотр видео CTF вдохновил меня начать с python и хорошо разбираться в командной строке (кстати, я в OSX).В прошлом я использовал среду spyder от Anaconda для школы (Python 2.7).Когда я настраивал brew, pip и python, я понял, что у меня было несколько пакетов от Anaconda для 2.7 на pip, но ни одного для 3.6 на pip3.Я решил pip list
и получил таблицу всех (многих) пакетов, установленных для меня anaconda.Вот что вы получите:
Package Version
---------------------------------- -----------------------
alabaster 0.7.10
anaconda-client 1.6.5
anaconda-navigator 1.6.8
anaconda-project 0.8.0
appnope 0.1.0
appscript 1.0.1
asn1crypto 0.22.0
astroid 1.5.3
astropy 2.0.2
Babel 2.5.0
backports-abc 0.5
backports.functools-lru-cache 1.4
backports.shutil-get-terminal-size 1.0.0
backports.ssl-match-hostname 3.5.0.1
beautifulsoup4 4.6.0
bitarray 0.8.1
...
У меня тогда возникла идея: можно ли преобразовать этот текст в строку в этом формате."Package1 Package2 Package3 Package4", поэтому я могу pip3 все пакеты. Это стало проблемой манипуляции со строками, так как я понял, что, вероятно, неэффективно просто pip3 установить более 150 пакетов и быстрее просто загрузить anaconda для 3.7 (совместимость, бесполезно, отнимает много времени ...)
Итак, я начал с извлечения списка с «>» в терминале в новый файл, который я сделал, затем удалил первые две строки с функцией tail в терминале.Что я мог сделать с питоном, я перепробовал много вещей, но он так и не сработал и нашел это, которое убило всю мотивацию к отладке / размышлению.
tail -n +2 "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE"
После этого я сделал этот простой скрипт на Python для преобразования в формат, который яискал, удалив все версии и сделав их одной строкой.
with open("file.txt","r+") as f:
lines=f.readlines()
new_string=''
for i in range(len(lines)):
lines[i]=lines[i].split(" ", 1)
del lines[i][1]
new_string += lines[i][0] + ' '
print new_string
Пожалуйста, дайте мне знать, есть ли что-то, что я мог сделать в окне терминала, или почему мой скрипт на python плох.Мой цикл для ИМО кажется странным с i
, а lines[i][0]
- уродливый ИМО, потому что вы не понимаете, что это означает.
Любая помощь или другой метод будут высоко оценены.Заранее большое спасибо.
** TLDR: Любое понимание:
1) простой способ удалить n первых строк txt-файла с помощью python или терминала
2)Почему мой код Python некрасив, есть ли терминальный эквивалент ?? **