Перемешивание списка объектов

В моем случае определенный HTTP-запрос будет работать в завитке в Git Bash в Windows. Тем не менее, я получаю ошибку «Сброс соединения» при работе на Java с использованием HttpClient и HttpGet (org.apache.http.client.methods.HttpGet).

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

В качестве обходного пути этот код будет записывать команду в пакетном файле, затем запускать командный файл и размещать вывод в файле command.txt.

Вот команда, которая должна быть в файле command.bat (я изменил конечную точку и пароль):

"C:\Users\scottizu\AppData\Local\Programs\Git\bin\sh.exe" --login -i -c "curl 'https://my.server.com/validate/user/scottizu' -H 'Password: MY_PASSWORD' > command.txt"

Вот код (обратите внимание, что у команды есть специальные символы, экранированные):

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class CURL_Runner {
    public static void main (String[] args) throws Exception {
        String command = "\"C:\\Users\\scottizu\\AppData\\Local\\Programs\\Git\\bin\\sh.exe\" --login -i -c \"curl 'https://my.server.com/validate/user/scottizu' -H 'Password: MY_PASSWORD' > command.txt\"";
        createAndExecuteBatchFile(command);
    }

    public static void createAndExecuteBatchFile(String command) throws Exception {

        // Step 1: Write command in command.bat
        File fileToUpload = new File("C:\\command.bat");
        try {
            if(fileToUpload.getParentFile() != null && !fileToUpload.exists()) {
                fileToUpload.getParentFile().mkdirs();
            }
            FileWriter fw = new FileWriter(fileToUpload);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(command);
            bw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Step 2: Execute command.bat
        String[] cmdArray = new String[1];
        cmdArray[0] = "C:\\command.bat";

        Process process = Runtime.getRuntime().exec(cmdArray, null, new File("C:\\"));
        int processComplete = process.waitFor();
    }
}
684
задан martineau 19 June 2017 в 17:14
поделиться

2 ответа

random.shuffle должен работать. Вот пример, где объекты являются списками:

from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)

# print(x)  gives  [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary

Обратите внимание, что перемешивание работает на месте и возвращает None.

1178
ответ дан 22 November 2019 в 21:33
поделиться
>>> import random
>>> a = ['hi','world','cat','dog']
>>> random.shuffle(a,random.random)
>>> a
['hi', 'cat', 'dog', 'world']

У меня работает нормально. Обязательно установите случайный метод.

23
ответ дан 22 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

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