IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zope Python Discussion :

[Plone] ouverture d'un fichier texte (problème très simple)


Sujet :

Zope Python

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Plone] ouverture d'un fichier texte (problème très simple)
    Bonjour!
    Je suis entrain de faire un product de gestion de courriers et j'ai une variable "Chrono" qui est contenu dans un fichier texte "numero.txt" situé dans:
    \Data\Products\GestionCourrier

    Donc pour l'ouvrir je fais:
    objFichier = open(r'C:\Program Files\Plone 2\Data\Products\GestionCourrier\numero.txt','r+')

    Cela marche bien sauf que l'ouverture du fichier dépend de l'OS et de la version de plone etc... Pas très malin quoi...

    deux solutions:

    1) je copies le fichier texte lors de l'install du product dans portal_url et dans ce cas:
    Quelles lignes de codes dois je écrire pour copier le fichier texte et l'ouvrir en lecture écriture?

    2) je laisse le fichier text dans \Data\Products\GestionCourrier et dans ce cas comment l'ouvrir sans problème de dépendance avec "portal_url"?
    objFichier = open(r'$portal_url/numero','r+')
    objFichier = open(r'string:$portal_url/numero','r+')
    ne marchent pas...

    Merci beaucoup pour votre aide car je seche pas mal et je pense que la solution est simple
    bizzz+++
    PS: ne devrais je pas mettre le fichier texte dans \Data\var en toute rigueur?

  2. #2
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Tout d'abord, ton post devrait se trouver dans le forum Zope
    Ensuite, il me semble que tu melanges Plone et système lorsque tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objFichier = open(r'$portal_url/numero','r+')
    objFichier = open(r'string:$portal_url/numero','r+')
    portal_url doit être une url (je crois) alors que tu as besoin d'un chemin

    Et puis je pense que tu devrais faire en sorte pour que ta variable Chrono ne sois pas dans un fichier...

    En esperant t'avoir un peu aidé

    @+

    Edit: en même temps je dis peut etre des betises pour l'url et le chemin... je ne connais pas du tout plone mais ca me semblait logique

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut oups
    oui, je m'excuse mon post devrait sans aucun doute être dans la partie Zope ...Je ferais gaffe la prochaine fois
    Je me rend bien compte que je mélange url et chemin...
    J'ai fais des recherche sur google et j'ai tenté d'utiliser os.path.abspath et sys.path[0] ainsi que sys.argv[0]:
    en script python ca marche...
    Comment puis je stocker cette variable sur le portail et y avoir acces?
    (cf http://www.developpez.net/forums/sho...d.php?t=215815)
    Merci beaucoup pour ton aide, c'est sympa!
    bizzz+++

  4. #4
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Je voulais d'abord savoir à quoi te servait cette variable et si elle doit être persistante, c'est à dire que même si ton serveur Plone reboot, ta variable gardera la même valeur.

    Ou sinon tu pourrais utiliser la ZODB pour stocker ta variable (parce que utiliser un SGBDR juste pour UNE variable ...) mais là je ne pourrais pas t'aider vu mon niveau de connaissance sur la ZODB

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut variable persistante
    salut,
    Oui il s'agit d'une variable persistante...Je n'ai trouvé comme moyen que de la stocker en dur sur le serveur. Je sais que c'est pas le mieux mais ca fonctionne sauf que c'est dépendant du chemin d'install de plone...D'où mon post.
    Sinon, si quelqu'un sait comment on gère une variable persistante et comment l'initialiser dans un package...
    Merci encore HexChit
    bizzz+++

    pour info:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
    import sys
    import os
    from Products.GestionCourrier.config import ARTICLE_GROUPS1
    from Products.GestionCourrier.config import ARTICLE_GROUPS2
    from Products.Archetypes.public import *
    from Products.Archetypes.Marshall import PrimaryFieldMarshaller
    from Products.CMFCore import CMFCorePermissions
    from config import PROJECTNAME
     
    schema = BaseSchema +  Schema((
    	StringField('Num_dpt',
    		vocabulary=ARTICLE_GROUPS1,
    		widget=SelectionWidget(label="Numero de departement"),
    		required=1,
    	),
    	StringField('Type',
    		vocabulary=ARTICLE_GROUPS2,
    		widget=SelectionWidget(label="Type"),
    		required=1,
    	),
    	IntegerField('Annee',
    		default='06',
    		widget=IntegerWidget(label="Annee"),
    		required=1,
    	),
    	IntegerField('Chrono',
    		widget=IntegerWidget(label="Chrono"),
    		default_method="incrChrono",
    		accessor="getChrono",
    		required=1,
    	),
    	StringField('Objet',
    		widget=StringWidget(label="Objet"),
    		required=1,
    	),
    	StringField('Destinataire',
    		widget=StringWidget(label="Destinataire"),
    		required=1,
    	),
    	FileField('Fichier',
    		widget=FileWidget(label="Fichier"),
    	),),
          marshall=PrimaryFieldMarshaller(),
    	)
     
    class Courrier(BaseContent):
     
    	schema = schema
     
    	def getChrono(self):
    		#objFichier = open(os.path.abspath(os.path.dirname(sys.argv[0]))+"\numero.txt",'r+')
    		objFichier = open(r'C:\Program Files\Plone 2\Data\Products\GestionCourrier\numero.txt','r+')
    		auxi = objFichier.read()
    		objFichier.close() 
    		Chrono=int(auxi)
    		return Chrono		
     
     
    	def incrChrono(self):
    		objFichier = open(r'C:\Program Files\Plone 2\Data\Products\GestionCourrier\numero.txt','r+')
    		#objFichier = open(os.path.abspath(os.path.dirname(sys.argv[0]))+"\numero.txt",'r+')
    		tmp = objFichier.read()
    		objFichier.seek(0)
    		objFichier.write(str(int(tmp)+1))
    		objFichier.close()
     
    	actions = ({
    		'id': 'view',
    		'name': 'View',
    		'action': 'string:${object_url}/courrier_view',
    		'permissions': (CMFCorePermissions.View,)
    	},)
     
     
    #	actions = ({
    #		'id': 'metadata',
    #		'name': 'Properties',
    #		'action': 'string:${object_url}/base_metadata',
    #		'permissions': (CMFCorePermissions.ModifyPortalContent,),
    #		'visible':0
    #	},)
     
    #	actions = ({
    #		'id': 'edit',
    #		'name': 'Edit',
    #		'action': 'string:${object_url}/courrier_edit',
    #		'permissions': (CMFCorePermissions.ModifyPortalContent,)
    #	},)
     
     
    registerType(Courrier, PROJECTNAME)
     
    schema2 = BaseBTreeFolderSchema
     
    class DossierCourrier(BaseBTreeFolder):
    	"""Un simple dossier folderish"""
    	allowed_content_types = ('Courrier',)
    	Initial_view_name = 'folder_listing' 
    	Default_view_method = 'folder_tabular_view'
    	schema = schema2
     
    	actions = ({
            'id': 'view',
            'name': 'View',
            'action': 'string:${object_url}/folder_tabular_view',
            'permissions': (CMFCorePermissions.View,)
            },)
     
    registerType(DossierCourrier, PROJECTNAME)

  6. #6
    Membre habitué Avatar de HexChit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Je te conseil de faire un nouveau post pour cela car c'est un sujet différent.

    Comme ça tu pourrais avoir ta réponse plus rapidement
    En plus j'ai cru voir (regarde un peu les post précédent) que quelqu'un avait fais un Zope product (je ne sais pas si c'est ce que tu appelles "package") donc il pourra surement t'aider si c'est la même chose.

    Et puis de rien on est la pour aider (du mieux qu'on peut ).

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut ok merci!
    oui, j'ai mélangé Zope product et package...
    Bon, je vais faire un nouveau post car je n'y suis toujours pas arrivée!
    bizzz+++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Ouverture/lecture de fichier texte VBA Access
    Par mmmxtina dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/06/2009, 09h55
  2. Ouverture d'un fichier texte avec ADO
    Par sony351 dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/02/2007, 16h54
  3. [VB6] Ouverture de plusieurs fichiers textes
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/09/2006, 10h45
  4. Message étrange à l'ouverture d'un fichier texte
    Par Bahan dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 27/07/2006, 11h16
  5. [VBA-E] Formatage des données à l'ouverture d'un fichier texte
    Par jmercier dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo