Не удается установить ubuntu рядом с окнами на dell xps 13

Опция python

Интересный вопрос. Хороший случай применения python groupby()

Поскольку ваши файлы находятся в одном, «плоском» каталоге:

#!/usr/bin/env python3
from itertools import groupby
import os
import sys

dr = sys.argv[1]
# list the files in the directory, split into "sortable" elements
flist = [[item, item.split(".", 1)] for item in os.listdir(dr)]
# sort the file list by first section (until the first found dot)
flist.sort(key=lambda x: x[1][0])
# create sub groups of the files, grouped by first section of name
for key, line in groupby(flist, lambda x: x[1][0]):
    line = list(line)
    # sort the files by second section of name for correct order in the csv lines
    line.sort(key=lambda x: x[1][1])
    # count the lines of the files, arrange the csv file
    print((", ").join([str(len(open(dr+"/"+f[0]).readlines())) for f in line]))

Как это работает

Если каталог содержит девять файлов:

sample1.ext                  2 lines
sample1.ext2                 3 lines
sample1.ext3                 3 lines

sample2.ext                  1 lines
sample2.ext2                 1 lines
sample2.ext3                 4 lines

sample3.ext                  6 lines
sample3.ext2                 1 lines
sample3.ext3                 4 lines
Сценарий отображает файлы, разбивает каждое из имен на два раздела, например:
sample2
и
ext2
, так как порядок строк и файла длина внутри линий зависит от точной сортировки этих двух секций. Затем скрипт сортирует файлы по первому разделу имени, так как длина каждого из файлов (с похожим названием) должна быть сгруппирована для первого раздела в одну строку; sample1, sample2, sample3 и т. д. Впоследствии подгруппы (по строке csv) создаются, правильно сортируются по второму разделу имен, чтобы номера (line-) отображались в правильном порядке в строке

Результат:

python3 '/home/jacob/Bureaublad/create_csv.py' '/home/jacob/Bureaublad/samples' 
2, 3, 3
1, 1, 4
6, 1, 4

Как использовать

Сценарий отображает файлы, разбивает каждое из имен на два раздела, например:
sample2
и
ext2
, так как порядок обоих строки и длина файла внутри строк зависят от точной сортировки этих двух разделов.

Скрипт перечисляет файлы, разбивает каждое из имен на два раздела, например:

python3 /path/to/create_csv.py /path/to/directory_with_files
[ ! d18]

Важное примечание

Запустите его с каталогом с вашими файлами в качестве аргумента

EDIT

Метод, используется для подсчета строк, подходит, если файлы не огромны. Если файлы есть, другой метод подсчета строк приведет к лучшей производительности.

item.split(".", 1)

В результате последней информации, добавленной к вашему вопросу, была отредактирована версия скрипта. По совпадению, не так много нужно изменить: скрипт уже разбил имена файлов на первую найденную точку командой:

Поскольку последний раздел имени .bam, который равен огромный , это бессмысленно для порядка сортировки.

str(len(open(dr+"/"+f[0]).readlines()))

Тогда нам нужно только заменить «старый» способ подсчета строк файла:

str(subprocess.check_output(["samtools", "view", "-c", dr+"/"+f[0]]).decode("utf-8").strip())

Отредактированный сценарий

#!/usr/bin/env python3
from itertools import groupby
import os
import sys
import subprocess

dr = sys.argv[1]
# list the files in the directory, split into "sortable" elements
flist = [[item, item.split(".", 1)] for item in os.listdir(dr)]
# sort the file list by first section (until the first found dot)
flist.sort(key=lambda x: x[1][0])
# create sub groups of the files, grouped by first section of name
for key, line in groupby(flist, lambda x: x[1][0]):
    line = list(line)
    # sort the files by second section of name for correct order in the csv lines
    line.sort(key=lambda x: x[1][1])
    # count the lines of the files, arrange the csv file
    print((", ").join([
        str(subprocess.check_output(["samtools", "view", "-c", dr+"/"+f[0]]).decode("utf-8").strip())
        for f in line]))

Обратите внимание на

by (реализация python и интеграция в скрипт-) команды, которую вы предоставили:

mapped.bam, rmdup.bam, sort.bam  
0
задан 8 October 2017 в 17:16

2 ответа

Спасибо всем, кто помог мне, проблема исходила из ключа usb. Не используйте ключ UltraFit от sandisk. Он работал с дерьмовым, сделанным мной, который я снял бесплатно.

0
ответ дан 18 July 2018 в 05:35

Спасибо всем, кто помог мне, проблема исходила из ключа usb. Не используйте ключ UltraFit от sandisk. Он работал с дерьмовым, сделанным мной, который я снял бесплатно.

0
ответ дан 24 July 2018 в 18:22
  • 1
    На моем Dell Inspiron 17R 7720 SE я узнал, что не смог установить с USB , когда подключались другие USB-устройства, возможно, в особенности сотовый телефон Android. – WinEunuuchs2Unix 9 October 2017 в 21:27

Другие вопросы по тегам:

Похожие вопросы: