Nombre maximum de caractères dans l'appel shell Python3 (par OS)

Lors du remplacement d'un programme écrit par un script shell par Python, il était nécessaire d'appeler certaines commandes shell depuis Python, mais il semble que les appels shell ont des limites de caractères différentes pour chaque système d'exploitation, j'ai donc étudié.

Commande à enquêter

OS à étudier

Script utilisé pour l'enquête

os.system()

import os
i = 100000000
n = 0
while True:
    n += i
    arg = 'b' * n
    command = 'echo "{arg}"'.format(arg=arg)
    result = os.system(command)
    if result != 0:
        if i == 1:
            break
        n -= i
        i //= 10
print("LENGTH: ", n -1 + 7) #Ajouter un écho, une virgule et un espace

subprocess.run(shell=True)

import subprocess
i = 100000000
n = 0
while True:
    try:
        n += i
        arg = 'b' * n
        command = 'echo "{arg}"'.format(arg=arg)
        subprocess.run(command,shell=True)
    except OSError:
        if i == 1:
            break
        n -= i
        i //= 10
print("LENGTH: ", n -1 + 7) #Ajouter un écho, une virgule et un espace

Résultats du sondage

OSX sierra (Python3.6.1) Python3 est téléchargé sur https://www.python.org/

commander os.system subprocess.run
Nombre maximum de caractères 260554 caractères 260549 caractères

Windows7 (Python3.6.1) Python3 est téléchargé sur https://www.python.org/

commander os.system subprocess.run
Nombre maximum de caractères 8160 caractères 32733 caractères

Ubuntu16.04 (Python3.5.2) Python 3 est dans le référentiel standard

commander os.system subprocess.run
Nombre maximum de caractères 131071 caractères 131071 caractères

CentOS7 (Python3.6.1) Python3 installé à partir du référentiel de la communauté IUS

commander os.system subprocess.run
Nombre maximum de caractères 131071 caractères 131071 caractères

Pour subprocess.run (shell = False)

J'ai également vérifié le motif shell = False, mais je craignais qu'il puisse être étudié avec succès, je ne l'ai donc pas répertorié ci-dessus. Un endroit où j'ai mené une enquête pour remplir le premier argument avec des personnages

Recommended Posts

Nombre maximum de caractères dans l'appel shell Python3 (par OS)
Projet Euler # 17 "Nombre de caractères" en Python
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Projet Euler # 8 "Produit maximum en chaîne numérique" en Python
Premier nombre 2 en Python
Implémentation d'estimation la plus probable du modèle de sujet en python
Comment obtenir le nombre de chiffres en Python
Obtenir la taille (nombre d'éléments) de Union Find en Python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Découvrez le nombre maximum de caractères dans un texte multiligne stocké dans un bloc de données
Exécuter des commandes shell en Python
Comptez le nombre de caractères dans le texte dans le presse-papiers sur Mac
Python --Trouvez le nombre de groupes dans l'expression regex
Jugement d'équivalence d'objet en Python
Appeler dynamiquement des méthodes en Python
Implémentation du tri rapide en Python
[Python] Réduisons le nombre d'éléments dans le résultat dans le fonctionnement de l'ensemble
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Manipulation des pixels d'image en Python
Exécutez la commande shell / Python dans R
Diviser timedelta dans la série Python 2.7
Générateur principal infini en Python3
Échappement automatique des paramètres MySQL en python
Gestion des fichiers JSON en Python
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
Afficher des caractères comme AA en python
La loi des nombres en python
Etude, jeu de numérotation avec Python
Implémentation du tri original en Python
Brouillage réversible d'entiers en Python
Projet Euler # 4 "Calligraphie maximum" en Python
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
[Python] Comment utiliser la liste 2 Référence de la valeur de la liste, nombre d'éléments, valeur maximale, valeur minimale
Représentez graphiquement l'évolution du nombre d'apparitions de mots clés par mois à l'aide de pandas
[Python] Précautions lors de la recherche des valeurs maximum et minimum avec un tableau numpy avec un petit nombre d'éléments
Conversion de la chaîne <-> date (date, datetime) en Python
Nombre moyen maximum de visiteurs quotidiens (grand)
Projet Euler # 3 "Maximum Prime Factors" en Python
Vérifiez le comportement du destroyer en Python
Théorie générale de la relativité en Python: Introduction
Projet Euler # 11 "Produit maximum dans la grille" en Python
Arborescence de sortie des fichiers en Python
Afficher une liste d'alphabets en Python 3
Comparaison des modules de conversion japonais en Python3
Résumé de diverses instructions for en Python
Projet Euler # 7 "1000 1er nombre premier" en Python
Le résultat de l'installation de python sur Anaconda
Modèles Gang of Four (GoF) en Python
Représentez facilement des données graphiques dans le shell et Python
Principes de base pour exécuter NoxPlayer en Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Traffic Safety-kun: Reconnaissance des panneaux de signalisation en Python
Appelez sudo en Python et mot de passe à saisie automatique
Résumé des méthodes intégrées, etc. de la liste Python
Résolvez le problème maximum de sous-tableau en Python
À la recherche du FizzBuzz le plus rapide en Python
Appelez APIGateWay avec APIKey dans les requêtes python
Exemple pratique d'architecture hexagonale en Python
Equation de mouvement à double pendule en python