Considérant en fait et en droit :
1.
Le 30 septembre 2015, A._ a ouvert action auprès du Tribunal des baux et loyers du canton de Genève contre B._ et C._. Ces derniers ont par la suite déposé contre elle deux plaintes pénales pour diffamation, calomnie et injures. Le 29 mars 2017, le Ministère public du canton de Genève a suspendu l'instruction pénale jusqu'à droit connu sur la procédure pendante devant le Tribunal des baux, les faits dénoncés étant en lien avec cette procédure.
Par arrêt daté du lundi 1er juillet 2017, la Chambre pénale de la Cour de justice du canton de Genève a déclaré irrecevable le recours formé par A._ contre l'ordonnance de suspension. La recourante désirait que la suspension dure jusqu'à épuisement de tous les recours dans la procédure civile, mais tel était le sens de l'ordonnance attaquée, de sorte qu'il n'existait pas d'intérêt au recours.
Par acte du 31 juillet 2017, A._ forme un recours contre l'arrêt de la Chambre pénale de recours. Elle demande au Tribunal fédéral de déclarer que cet arrêt est nul car rendu à une date impossible. Subsidiairement, elle demande au Tribunal fédéral d'annuler l'arrêt et de déclarer que le recours cantonal était formé sous deux conditions suspensives qui ne se sont pas réalisées. Elle demande en tout état l'annulation des frais de procédure.
Il n'a pas été demandé de réponse au recours.
2.
Une décision prise en dernière instance cantonale dans le cadre d'une procédure pénale est susceptible d'être déférée au Tribunal fédéral par la voie du recours en matière pénale, au sens des art. 78 ss de la loi sur le Tribunal fédéral (LTF; RS 173.110).
2.1. L'arrêt attaqué confirme l'ordonnance de suspension rendue par le Ministère public. Il s'agit d'une décision incidente puisqu'elle ne met pas fin à la procédure pénale ouverte contre la recourante. Le recours en matière pénale n'est donc recevable que si cet arrêt est de nature à causer un préjudice irréparable (<ref-law>; <ref-ruling> consid. 2 p. 286) ou si l'admission du recours peut conduire immédiatement à une décision finale qui permet d'éviter une procédure probatoire longue et coûteuse (<ref-law>). Cette dernière hypothèse n'entre pas en considération en l'occurrence. Selon la jurisprudence, une décision de suspension peut causer un dommage irréparable au justiciable qui se plaint d'un retard injustifié à statuer sur le fond (<ref-ruling> consid. 1.1 p. 261; <ref-ruling> consid. 2.2-2.4 p. 45 s.). Tel n'est pas le cas en l'espèce, la recourante ne faisant nullement valoir une violation du principe de célérité.
Il s'ensuit que le recours est irrecevable. Supposé recevable, il serait d'ailleurs manifestement mal fondé.
2.2. Dans un premier grief, la recourante estime que l'arrêt attaqué serait nul car la date de son prononcé (le lundi 1 er juillet 2017) serait impossible. Contrairement à ce qu'elle soutient, la mention d'une date de prononcé inexacte n'est pas un vice suffisamment grave (telle l'incompétence manifeste de l'autorité qui a rendu la décision, cf. <ref-ruling> consid. 3.1 p. 27) pour constituer un motif de nullité absolue. Un tel vice peut d'ailleurs être corrigé par la voie d'une simple rectification et ne saurait dès lors justifier l'annulation de la décision attaquée.
2.3. Dans un second grief, la recourante affirme qu'elle n'entendait pas recourir inconditionnellement contre l'ordonnance de suspension, mais seulement s'assurer que celle-ci s'étendait à l'ensemble de la procédure civile, y compris en cas de recours. Le mémoire du 10 avril 2017 à la Chambre pénale était clairement présenté comme un recours. La recourante y évoquait certes différentes réserves et hypothèses, mais s'opposait à la décision de suspension telle que motivée par le Ministère public. Ce dernier, dans ses observations sur le recours cantonal, a clairement fait savoir que la reprise de la procédure pénale ne serait ordonnée qu'après droit définitivement jugé au civil. Ces explications ont été transmises à la recourante pour d'éventuelles observations complémentaires. La recourante pouvait aisément en déduire d'une part que son écriture serait traitée comme un recours et d'autre part que les explications du Ministère public privait celui-ci de son éventuel objet. Faute de toute réaction de sa part, elle ne saurait reprocher à la cour cantonale d'avoir statué comme elle l'a fait.
3.
Sur le vu de ce qui précède, le recours est irrecevable. Conformément à l'<ref-law>, les frais judiciaires sont mis à la charge de la recourante. Le présent arrêt est rendu selon la procédure simplifiée de l'<ref-law>.


Par ces motifs, le Juge présidant prononce :
1.
Le recours est irrecevable.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué à la recourante, au Ministère public et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 3 août 2017
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant : Karlen
Le Greffier : Kurz