צריך עזרה בכתיבת סקריפט פייטון.
-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
אז ככה..
אני רוצה לכתוב סקריפט שפשוט יבדוק כמה מקום פנוי יש בדיסק,
מדובר על מערכת אנדרואיד ומשום מה הפקודה os.statvfs('/')
מחזירה לי שגיאה: 'module' object has no attribute 'statvfs'.
לא משנה מה אני שם בPATH.
האם יש איזו שהי דרך?
תודה רבה
אני רוצה לכתוב סקריפט שפשוט יבדוק כמה מקום פנוי יש בדיסק,
מדובר על מערכת אנדרואיד ומשום מה הפקודה os.statvfs('/')
מחזירה לי שגיאה: 'module' object has no attribute 'statvfs'.
לא משנה מה אני שם בPATH.
האם יש איזו שהי דרך?
תודה רבה
- Batnun
-
- חבר מביא חבר

- תגובות: 3631
- הצטרף: מאי 2005
- Batnun
-
- חבר מביא חבר

- תגובות: 3631
- הצטרף: מאי 2005
הנה דוגמה שעובדת:
Batnun
.
קוד: בחירת הכל
import os
statvfs = os.statvfs('/')
print 'Free space: ', str(statvfs.f_frsize * statvfs.f_bfree / 1000000000) + ' GB'
Batnun
.
-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
@Batnun
·אני אני כותב את הפקודה הזאת זה מחזיר לי שגיאה...
'module' object has no attribute 'statvfs'.
כנראה שלא עובד עם אנדרואיד או משהו...
האם יש דרך אחרת???
·אני אני כותב את הפקודה הזאת זה מחזיר לי שגיאה...
'module' object has no attribute 'statvfs'.
כנראה שלא עובד עם אנדרואיד או משהו...
האם יש דרך אחרת???
- kingikra
-
- חבר שלא מהעולם הזה

- תגובות: 8141
- הצטרף: דצמבר 2006
זה מה שמצאתי בחיפוש קצר
נא להרשם/להכנס לחשבון בפורום על מנת לצפות בקבצים או בתמונות המצורפים לשרשור
- Batnun
-
- חבר מביא חבר

- תגובות: 3631
- הצטרף: מאי 2005
·kingikra כתב:זה מה שמצאתי בחיפוש קצר...
statvfs אכן כבר הוסר החל מגירסה 3, אבל כאן מדובר על os.statvfs, שעדיין נתמך.
בכל מקרה, נסה לעבוד עם os.fstatvfs.
Batnun
.
-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
זה מה שניסיתי אבל לא עובד כפי שכבר כתבתי...
הפקודה כן עובדת אבל מחזירה לי שגיאה
.
'module' object has no attribute 'statvfs'.
האם יש דרך אחרת???
הפקודה כן עובדת אבל מחזירה לי שגיאה
.
'module' object has no attribute 'statvfs'.
האם יש דרך אחרת???
- kingikra
-
- חבר שלא מהעולם הזה

- תגובות: 8141
- הצטרף: דצמבר 2006
מצאתי בגוגל כמה וכמה דרכים. שווה לך לנסות אותם עד שאחד יצליח.
- Batnun
-
- חבר מביא חבר

- תגובות: 3631
- הצטרף: מאי 2005
·עדיטו כתב:זה מה שניסיתי אבל לא עובד כפי שכבר כתבתי...
הפקודה כן עובדת אבל מחזירה לי שגיאה
.
'module' object has no attribute 'statvfs'.
האם יש דרך אחרת???...
שים לב שבתגובה הקודמת כתבתי os.fstatvfs ולא os.statvfs:
http://www.tutorialspoint.com/python/pd ... tatvfs.pdf
Batnun
.
-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
היי
ניסיתי להשתמש בos.fstatvfs
אך אני מקבל בדיוק את אותה השגיאה...
האם יש דרך אחרת לגמרי...?
נ.ב
חיפשתי בגוגל לא מצאתי שום פיתרון אחר.
ניסיתי להשתמש בos.fstatvfs
אך אני מקבל בדיוק את אותה השגיאה...
האם יש דרך אחרת לגמרי...?
נ.ב
חיפשתי בגוגל לא מצאתי שום פיתרון אחר.
- rabak
-
- חבר פעיל במיוחד

- תגובות: 565
- הצטרף: דצמבר 2010
@עדיטו
·הדרך האחרת היא לפתוח בsubprocess את הפקודה df
זה כבר אמור לעבוד...
·הדרך האחרת היא לפתוח בsubprocess את הפקודה df
קוד: בחירת הכל
import os
import sys
import subprocess
def freeSpaceInPath(path):
try:
f = os.statvfs(path)
return f.f_bsize * f.f_bavail
except Exception:
print("error using statvfs() for free space detection")
try:
df_process = subprocess.Popen(["df", path], stdout=subprocess.PIPE)
df_output = df_process.communicate()[0].decode('utf-8')
df_output = re.sub("\s\s+", " ", df_output)
megabytes_available_str = df_output.split("\n")[1].split(" ")[3]
return int(megabytes_available_str)
except Exception:
print("calling df also failed")
return None-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
נראה שיש שגיאה בקוד
df_output = re.sub("\s\s+", " ", df_output)
מאיפה הגיע הre??
תודה
df_output = re.sub("\s\s+", " ", df_output)
מאיפה הגיע הre??
תודה
- avigdork
-
- חבר ותיק

- תגובות: 1460
- הצטרף: יולי 2012
תוסיף בהתחלה:
import re
import re
-
עדיטו
-
- חבר פעיל מאוד

- תגובות: 415
- הצטרף: יולי 2015
- שם מלא: adito
תודה רבה!!!!
נראה שעובד!
נראה שעובד!