Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Χριαζομαι μία βοήθεια

Χριαζομαι μία βοήθεια 8 Χρόνια 5 Μήνες πριν #3665

  • rafail andreou
  • Το Άβαταρ του/της rafail andreou
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 8
Θα ήθελα να φτιάξω ένα πρόγραμμα το οποίο θα του δίνω ένα όνομα αρχείου να το διαβαζει:
1.Να ρωτάει σε πόσα κομμάτια θέλω να μοιράζω το αρχείο
2.Να το μοιράζει σε όσα κομμάτια του λέω όπου το κάθε κόμματα θα έχει όνομα αρ.fl
π.χ
Όνομα αρχείου :test.exe
Κομάτια: 5
Θα ανοίγει το αρχείο και θα το μοιράζει σε 5 κομμάτια όπου θα τα αποθηκεύει στον φάκελο με τα ονόματα:
1.fl, 2.fl 3.fl κτλ
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Χριαζομαι μία βοήθεια 8 Χρόνια 5 Μήνες πριν #3668

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Πρέπει να διερέσεις το μέγεθος το αρχείου σου με τον αριθμό τον parts που θέλεις να διαμερήσεις
το αρχείο έτσι ώστε να βρεις από πόσα bytes θα αποτελείτε το κάθε αρχείο σου. Στην συνέχεια απλός
διαβάζεις κάθε φόρα τόσα bytes απο το αρχείο σου και τα γράφεις σε άλλα αρχείο.

Ένα παράδειγμα:
import os, sys
 
#Όνομα αρχείου
fileName = input("Give the file name: ")
 
#Σε πόσα αρχεία θα το σπάσω
divider  = int(input("Give the divide number: "))
 
#Μέγεθος αρχείου
fileSize = os.path.getsize(fileName)
 
 
#Πόσα bytes πρέπει να έχει το κάθε αρχείο
bytes_per_file = fileSize // divider
 
#Το αρχείο δεν μπορεί να διαμεριστεί σε divider μέροι.
if bytes_per_file == 0:
    print("The file is very small and can't be divited to",divider,"parts.")
    sys.exit()
 
 
counter = 1
 
read_file = open(fileName, 'rb')
 
 
while True:
 
    #Διάβασε τα επόμενα bytes από το αρχείο
    max_bytes = read_file.read(bytes_per_file)
 
    #Εάν αυτό είναι αληθές τότε έφτασα στο τέλος του αρχείου
    #και δεν χρειάζεται να κάνω τίποτα πλέον.
    if not max_bytes:
        break
 
    #Άνοιξε ένα νέο αρχείο.
    write_file = open(str(counter)+".fl", 'wb')
 
    #Γράψε τα bytes.
    write_file.write(max_bytes)
 
    #Κλείσε το αρχείο.
    write_file.close()
 
    #Αύξησε τον counter.
    counter += 1
 
 
read_file.close()
 
print("The file", fileName, "divided successfuly!")
 

Ότι δεν καταλαβαίνεις ρωτάς ;)


Και αν θέλεις μπορείς να κάνεις και ένα άλλο πρόγραμμα που να παίρνει ως είσοδο αυτά τα αρχεία
και να ξανά δημιουργεί το αρχικό αρχείο απλός ενώνοντας τα bytes σε ένα και μόνο αρχείο. Προσοχή ότι αυτό το νέο αρχείο θα πρέπει να έχει την ίδια κατάληξη πχ .exe όπως ήταν αρχικά.
Τελευταία διόρθωση: 8 Χρόνια 5 Μήνες πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": rafail andreou

Χριαζομαι μία βοήθεια 8 Χρόνια 5 Μήνες πριν #3669

  • rafail andreou
  • Το Άβαταρ του/της rafail andreou
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 8
Χίλια ευχαριστώ. Μια απορία τι ακριβώς κάνει το sys module...Συγνώμη κιόλας ..Είμαι καινούργιος στον προγραμματισμό
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Χριαζομαι μία βοήθεια 8 Χρόνια 5 Μήνες πριν #3670

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
rafail andreou έγραψε:
Χίλια ευχαριστώ. Μια απορία τι ακριβώς κάνει το sys module...Συγνώμη κιόλας ..Είμαι καινούργιος στον προγραμματισμό

Δεν χρειάζεται να ζητάς συγγνώμη.
Το sys module, παρέχει συναρτήσεις που αφορούν το λειτουργικό σύστημα. Ρίξε μια ματιά εδώ.
Γράφω σε Python 3
Τελευταία διόρθωση: 8 Χρόνια 5 Μήνες πριν από kamar. Αιτία: Διόρθωση ορθογραφικών λαθών.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Χριαζομαι μία βοήθεια 8 Χρόνια 5 Μήνες πριν #3671

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
rafail andreou έγραψε:
Χίλια ευχαριστώ. Μια απορία τι ακριβώς κάνει το sys module...Συγνώμη κιόλας ..Είμαι καινούργιος στον προγραμματισμό

Στην συγκεκριμένη περίπτωση χρησιμοποιώ μόνο την sys.exit() η οποία απλός τερματίζει το
πρόγραμμα σε όποια κατάσταση και αν βρήσκεται.

Γενικά όπως είπε και ο Kamar σου παρέχει διάφορες λειτουργίες που αφορούν το λειτουργικό σου
σύστημα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.400 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου