יותר

קבלת הצהרות הדפסה בסקריפט של פייתון להדפסה באמצעות קובץ אצווה


אני מתחיל ללמוד פייתון וקבצי אצווה. יש לי סקריפט Python שבוחר נתונים לפי מיקום ומייצא את הבחירה למחלקת תכונה חדשה. התסריט פועל מצוין - כלול בתסריט זה יש לי את השורות הבאות:

matchCount = int (arcpy.GetCount_management (featureLayer) .getOutput (0)) print str (matchCount) + "שורות מיוצאות"

כשאני מריץ סקריפט זה ב- PythonWin הצהרת ההדפסה למעלה מופקת בחלון האינטראקטיבי. כשאני מריץ סקריפט זה דרך קובץ אצווה הצהרת ההדפסה אינה מופקת. בסוף קובץ האצווה שלי כתבתי PAUSE כך שהמסך לא ייעלם לאחר הפעלת התסריט שלי. למישהו יש רעיונות כיצד לייצר את הצהרת ההדפסה שלי בשורת הפקודה?


האם תוכל להראות לנו את תוכן קובץ האצווה שלך בבקשה?

(BTW, תרגול מומלץ הוא להשתמשarcpy.AddMessage ()במקום להדפיס, לניידות בין קבצי שורת הפקודה/קבוצה ואצווה ל- ArcMap. אבל ההדפסה בסדר אם אתה לא רוצה שההודעה שלך תוצג בתוך ArcMap.)


דרך קלה יותר לעשות זאת היא להגדיר את Eclipse לעבודה עם PyDev ותוכל להריץ את הקוד שלך ולבייק אותו שם. אתה בעצם מבטל את זה שם, שם עצירות ושעונים בקוד, כדי לחבר את האובייקטים.

זאת העצה שלי.


דוגמאות להצהרת הדפסה של פייתון

אנשים רבים מתחילים את התכנות שלהם עם "שלום עולם פשוט". תוכנית זו הפכה לתוכנית הראשונה המסורתית שאנשים לומדים. תוכנית "שלום עולם" פשוט מדפיסה את "שלום עולם!". זה פשוט מספיק כך שאנשים שאין להם ניסיון בתכנות מחשבים יכולים בקלות להתחיל לתכנת בשפה חדשה.

תוכנית "עולם העולמי" בפייתון פשוטה מאוד, היא הצהרת שורה אחת כפי שמוצג להלן,

הערה: דוגמאות למסמך זה נוצרות באמצעות פייתון 2.7. ב- Python 3+ עליך להשתמש בהצהרת הדפסה במקום בפקודת הדפסה.


מפעילים אותו!

כפי שנאמר למעלה, השימוש ב- Python 3 לא הצליח להריץ אותו. שינוי הצהרות ההדפסה לפונקציות פתר בעיה זו. Python 2 תומך גם בפונקציית ההדפסה (), כך שלא אמורה להיות בעיה גם בהפעלת Python 2.

התוכנית רצה כצפוי עם קובץ נכון, והפיקה קובץ פלט עם הערכים המומרים.

הפעלתו עם קובץ לא חוקי, או ללא ארגומנטים כלל, קורסת את התוכנית עם FileNotFoundError או ValueError בהתאמה. אם ניתן קובץ קיים אך יש בו ערך הקסדצימלי לא חוקי (למשל מחרוזת אקראית), התוכנית גם קורסת:

השגיאות שלעיל אומרות לנו שאנחנו צריכים לבדוק כמה שגיאות.

השגיאה הראשונה לפתרון תהיה ValueError של אי מתן שם קובץ כארגומנט בעת הפעלת התוכנית. ניתן לפתור זאת על ידי שימוש במודול CLI כגון argparse, קליק או אולי אחר שאתה אוהב. אני אישית משתמש ב- argparse, מכיוון שזה די פשוט וזה חלק מהספרייה הסטנדרטית.

בשלב זה תוכל לגשת ארגומנטים ארגומנטים של שורת הפקודה כמילון.

החלק אם __name__ == '__ עיקר__': החלק מהקוד ישים רק אם הוא מופעל כתסריט. המשמעות היא שאם הקובץ מיובא כמודול, הוא לא יפעל. ראה גם תשובה זו למידע נוסף.

כאשר אנו מריצים את הקוד לעיל לְלֹא כל טיעון, אנו מקבלים את הדברים הבאים:

הבא הוא FileNotFoundError. זה די קל לפתור: לפני פתיחת הקובץ, בדוק אם הוא קיים באמצעות מודול ההפעלה שכבר מיובא:

ניתן לפתור את ValueError האחרון במספר דרכים. אחת מהן תהיה להשתמש ב regex בשורה הנוכחית של הקובץ כדי למצוא ערכים הקסדצימליים. בהנחה שרק הערכים ההקסדצימליים צריכים להיות בקו, זה הופך להיות הרבה יותר פשוט. אנחנו יכולים פשוט לבדוק אם השורה מתחילה ב- 0x (למשל ערך הקסדצימלי).

קריאת הקובץ צריכה להיעשות גם היא שורה אחר שורה כאיטרציה, כדי למנוע מקבצים ענקיים לקרוס את התוכנית שלך על ידי צריכת זיכרון גבוהה מדי. כרגע התוכנית קוראת את כל הטקסט בקובץ לתוך הזיכרון. ניתן לעשות זאת כמתואר בשאלה הבאה:

הצבת זה בפונקציה משלו גם מונע ממך לפתוח את הקובץ ברציפות.


אין פקודה ספציפית (או לפחות, לא כזו שאני מודע לה) לקבל מידע זה, אך תוכל למצוא אותו בין אלה המסופקים על ידי systeminfo.exe.

Get-UICulture או Get-Host ב- PowerShell

אם אתה צריך את המקום בפועל כדי לעשות דברים אחרים בקובץ אצווה באופן מותנה אתה יכול ליצור קובץ אצווה (שמור קובץ טקסט כתוסף .bat) עם הדברים הבאים. כנקודת התחלה זה יודפס לשורת הפקודה, למשל, "en-us" (ללא מרכאות) אתה יכול גם להשתמש במשתנה! VERBOSE_SYSTEM_LOCALE! עבור האזור הקריא האנושי למשל אנגלית ארצות הברית)

למעשה, ההצעות שלך נכשלות מכיוון שהן מסתמכות על חיפוש במחרוזת ("אזור המערכת") שמשתנה בהתאם למקום הנוכחי! ב- Win10Pro הצרפתי שלי, המחרוזת היא"אפשרות régionale du système"(עם אות מודגשת, שקשה מאוד לטפל בה נכון בקובץ CMD).

עשיתי כמה בדיקות, ונראה, במערכת MY, כי השורות בנוגע לאזור בפלט מערכת מידע הן היחידות המכילות תו חצי נקודה (""):


מדוע תכנות פייתון לפריצה

פייתון היא שפת תכנות ברמה גבוהה לשימוש כללי ורבות. פייתון היא שפה פשוטה מאוד אך שפת סקריפט חזקה, היא בעלת קוד פתוח ומוכוונת עצמים ויש לה ספריות נהדרות שניתן להשתמש בהן הן לפריצה והן לכתיבת תוכניות רגילות שימושיות מאוד פרט לתוכנות פריצה. בעידן העתיד וההווה פייתון פופולרי מאוד וקל ללמוד אותו, ללמוד לפרוץ עם פייתון יהיה כיף ותלמד תכנות פייתון בצורה הטובה ביותר. יש ביקוש גדול למפתחי פייתון בשוק.

הערה: למידע נוסף על פייתון לחץ כאן.


סיכום

מטרת מסמך זה היא לספק הפניה מהירה לחיבור והחלפת מידע בין שתי מערכות. מסמך זה מתאר תהליך טיפוסי עבור הפעלה אינטראקטיבית או אוטומטית בפרוטוקול העברת קבצים (FTP) הפועלת במחשב עם Windows/2000 ומתחברת למערכת UNIX. תהליך זה עשוי להשתנות מעט בהתאם לתצורות החומרה והתוכנה של המערכות המקומיות והרחוקות.

מסמך זה עשוי לשמש כמדריך למתכנתים חדשים או כהפניה מהירה למתכנתים מנוסים.

בעולם התכנות ישנן דרכים רבות לפתור בעיה. תיעוד ותוכנה אלה פותחו ונבדקו על מערכות המוגדרות עבור סביבת SIMOTIME המבוססת על החומרה, מערכות ההפעלה, דרישות המשתמש ודרישות האבטחה. לכן ייתכן שיהיה צורך בהתאמות לביצוע העבודות והתוכניות בעת העברתן למערכת בעלת ארכיטקטורה או תצורה אחרת.

ל- SIMOTIME Services ניסיון בהעברת או שיתוף נתונים או עיבוד יישומים במגוון מערכות. למידע נוסף אודות שירותי SIMOTIME או טכנולוגיות אנא פנה אלינו באמצעות המידע בסעיף הערות או משוב במסמך זה.

הסכם תוכנה ויתור

הרשאה לשימוש, להעתיק, לשנות ולהפיץ תוכנה זו, תיעוד או חומר הדרכה לכל מטרה מחייבת תשלום אגרה ל- SimoTime Technologies. לאחר קבלת האגרה על ידי SimoTime תימסר הגרסה העדכנית ביותר של התוכנה, תיעוד או חומר הדרכה וניתן רישיון לשימוש בתוך ארגון, בתנאי שהודעת זכויות היוצרים של SimoTime תופיע על כל עותקי התוכנה. אין להשתמש בשם SimoTime או בלוגו בכל פרסום או פרסום הנוגע לשימוש בתוכנה ללא אישור בכתב של SimoTime Technologies.

SimoTime Technologies אינה נותנת אחריות או מצגת לגבי התאמת התוכנה, התיעוד או חומר הלמידה לכל מטרה שהיא. הוא מסופק "כפי שהוא" ללא כל אחריות מפורשת או משתמעת, כולל אחריות משתמעת לסחירות, התאמה למטרה מסוימת ואי הפרה. SimoTime Technologies לא תהיה אחראית לנזקים ישירים, עקיפים, מיוחדים או תוצאתיים הנובעים מאובדן שימוש, נתונים או פרויקטים, בין אם מדובר בפעולה של חוזה או עוולה, הנובעים משימוש או ביצועים של תוכנה זו או בהקשר לה. , תיעוד או חומר הדרכה.

הורדות וקישורים

חלק זה כולל קישורים למסמכים עם מידע נוסף שהם מעבר להיקפו ולמטרתו של מסמך זה. קבוצת המסמכים הראשונה עשויה להיות זמינה ממערכת מקומית או באמצעות חיבור לאינטרנט, קבוצת המסמכים השנייה תדרוש חיבור לאינטרנט.

הערה: נדרש רישיון SimoTime כדי שהפריטים יהיו זמינים במערכת או בשרת מקומי.

שרת נוכחי או גישה לאינטרנט

הקישורים הבאים עשויים להיות לשרת הנוכחי או לאינטרנט.

הערה: הגרסאות העדכניות ביותר של SimoTime Documents and Program Suites זמינות באינטרנט וניתן לגשת אליהן באמצעות הסמל. אם למשתמש יש רישיון SimoTime Enterprise, ייתכן שהמסמכים וחבילות התוכניות יהיו זמינים בשרת מקומי ונגישו באמצעות הסמל.

חקור סקריפטים לדוגמה של FTP וקבצי פקודות של Windows (FTP) שיעבירו קבצים בין מערכת מארח Mainframe לבין מערכת לקוח של Windows.

חקור את החלופות להעברת קבצי נתונים בין מערכות. קישור זה מספק גישה למאגר מידע הכולל העברה ו/או שיתוף נתונים בין Mainframe (ZOS או VSE), Linux, UNIX ו- Windows Systems.

חקור את לוחות התרגום של ASCII ו- EBCDIC. טבלאות אלה ניתנות לאנשים הזקוקים להבנה טובה יותר של מבני הסיביות וההבדלים של תבניות הקידוד.

חקור את קודי החזרת סטטוס הקבצים כדי לפרש את תוצאות הגישה למערכות נתונים VSAM ו/או לקבצי QSAM.

נדרשת גישה לאינטרנט

הקישורים הבאים ידרשו חיבור לאינטרנט.

מקום טוב להתחיל בו הוא דף הבית של SimoTime לגישה למסמכים לבנים, דוגמאות לתוכנית ומידע על מוצרים. קישור זה דורש חיבור לאינטרנט

חקור את אתר מיקרו פוקוס למידע נוסף על מוצרים ושירותים הזמינים ממיקרו פוקוס. קישור זה דורש חיבור לאינטרנט.

חקור את טכנולוגיות GnuCOBOL הזמינות מ- SourceForge. SourceForge הוא משאב קהילתי של קוד פתוח המיועד לסייע לפרויקטים של קוד פתוח להיות מוצלחים ככל האפשר. GnuCOBOL (לשעבר OpenCOBOL) הוא מהדר COBOL עם תמיכה בזמן ריצה. המהדר (cobc) מתרגם את מקור COBOL להפעלה באמצעות C ביניים, מהדר C וקישור. קישור זה ידרוש חיבור לאינטרנט.

מילון מונחים

בדוק את מילון מונחי SimoTime לקבלת רשימה של מונחים והגדרות המשמשים במסמכים שסיפק SimoTime.

הערות או משוב

מסמך זה נוצר ומתוחזק על ידי SimoTime Technologies. אם יש לך שאלות, הצעות, הערות או משוב אנא השתמש בפרטי הקשר הבאים.

אנו מעריכים לשמוע ממך.

מבט כולל על חברה

חברת SimoTime Technologies נוסדה בשנת 1987 והיא חברה בבעלות פרטית. אנו מתמחים ביצירה ופריסה של יישומים עסקיים באמצעות טכנולוגיות ושירותים חדשים או קיימים. יש לנו צוות של אנשים שמבינים את המגוון הרחב של הטכנולוגיות הנמצאות בשימוש בסביבות היום. בין לקוחותינו נמנים עסקים קטנים המשתמשים בטכנולוגיות אינטרנט לתאגידים המשתמשים במערכות מיינפריים גדולות מאוד.

לעתים קרובות, כדי להגיע לשווקים גדולים יותר או לספק שירות ברמה גבוהה יותר ללקוחות קיימים, נדרשת טכנולוגיות האינטרנט החדשות לעבוד בצורה משלימה עם מערכות מיינפריים קיימות של חברות. אנו מתמחים בהכנת יישומים והנתונים הנלווים הנמצאים כיום בפלטפורמה אחת שתופץ על פני מגוון פלטפורמות.

הכנת תוכניות היישום תדרוש העברת חברי מקור שיורכבו ויפרסו בפלטפורמת היעד. יהיה צורך להעביר את הנתונים בין המערכות וייתכן שיהיה צורך להמיר ולאמת אותם בשלבים שונים בתוך התהליך. ל- SimoTime יש את הטכנולוגיה, השירותים והניסיון לסייע במשימות היישום וניהול הנתונים הכרוכים בביצוע עסקים בסביבה מרובת מערכות.


אתה צריך קצת שטח לבן. בין השיטות בשיעור Player למשל, הייתי מוסיף שורה ריקה. בין כיתת הנגן למחלקת הדרקון, הייתי מוסיף שתי שורות ריקות. PEP 8, מדריך הסגנון הרשמי של Python, מסכים: https://www.python.org/dev/peps/pep-0008/#blank-lines.

בכמה מקומות אתה משתמש ב- if option ==. או אופציה ==. או. . זה ארוך ממה שהוא צריך להיות. כדאי לנצל את ב- (ראה גם https://stackoverflow.com/q/15112125/5827958). לדוגמה:


להלן פתרון שאינו כולל OpenOffice:

sudo apt-get install enscript

תמליל my_text_file.txt -o - | ps2pdf - output.pdf

ישנן אפשרויות נוספות לכתב, למשל. -B כדי להשמיט את כותרת הדף. עיין בכתב האיש של כל האפשרויות.

מבלי להתקין אף אחת מהתוכנות שהוזכרו לעיל, ניתן פשוט לבצע את הפעולות הבאות עם כוספילטר שכבר מותקן:

(לאפשרויות וכו 'עיינו בדפי איש פילטר :-) :-))

דרך ההרשמה הפשוטה

sudo apt-get install cups-pdf enscript

לאחר מכן הפעל את הקובץ על קובץך באמצעות מתג -P ומסמך PDF של תיאור המדפסת במקרה זה.

מדפסת עם תיאור PDF נוצרה בעת התקנת כוסות-pdf, כאשר אתה משתמש במכתב עם מדפסת זו המסמך שלך יישלח למדפסת ה- PDF ויודפס לקובץ, נוצר כ- PDF במדריך /הבית /PDF שלך, הפקודה למעלה תדפיס את קובץ הטקסט test.txt כקובץ PDF בספריית ה- PDF.

שימוש ב- UNOCONV

אתה יכול להשתמש ב- unoconv במצב עצמאי, המשמעות היא שבהיעדר מאזין OpenOffice, הוא יתחיל משלו:


סיומות קבצים

סיומות קבצים נותנות למשתמש ולמערכת אינדיקטור לגבי תוכן הקובץ. סיומות קבצים סבירות לקבצי תצורה הן

  • *config.py עבור קבצי Python
  • *.yaml או *.yml אם התצורה נעשית בפורמט YAML
  • *.json לקבצי תצורה שנכתבו בפורמט JSON
  • *.cfg או *.conf כדי לציין שמדובר בקובץ תצורה
  • *.ini עבור "אתחול" נפוצים למדי (ראו ויקי)

עם זאת, אני חושב שאני מעדיף *.conf. אני חושב שזוהי בחירה שהמשתמשים מבינים.

אבל אתה יכול גם לשקול ש *.ini עשוי להיפתח באופן סטנדרטי בעורך טקסט. לגבי האפשרויות האחרות, משתמשים עשויים להישאל באיזו תוכנית הם רוצים להשתמש.