اذهب إلى المحتوى
  • 0

نسخ ملف في البايثون

Maram Jouriah

السؤال

Recommended Posts

  • 0
  • يمكنك تنفيذ النسخ باستخدام os module عن طريق تنفيذ امر النسخ علي نظام التشغيل ويندوز او لينكس
  • امر نسخ الملف علي الويندوز هو
copy source.txt destination.txt
  • امر نسخ الملف علي نظام تشغيل لينكس هو
cp source.txt destination.txt
  • لنسخ ملف باستخدام os module في بايثون
//إذا كان نظام التشغيل لينكس
os.popen('cp source.txt destination.txt') 

// إذا كان نظام التشغيل ويندوز
os.popen('copy source.txt destination.txt')
  • ويمكن نسخ الملفات في بايثون باستخدم shutil module عن طريق اكثر من داله copyfile, copy, copy2, copyfileobj
import shutil

# باستخدام دالة copyfile
shutil.copyfile('source.txt', 'destination.txt')

# باستخدام دالة copy
shutil.copy('source.txt', 'destination.txt')

# باستخدام دالة copy2
shutil.copy2('source.txt', 'destination.txt')  

# باستخدام دالة copyfileobj
# قراءة محتوي ال source file
# rb => للقراءه
file_src = 'source.txt'  
f_src = open(file_src, 'rb')

# فتح ال destination file
# wb => للكتابه
file_dest = 'destination.txt'  
f_dest = open(file_dest, 'wb')

# نسخ ال source file to destination file
shutil.copyfileobj(f_src, f_dest)  

 

تم التعديل في بواسطة محمد صقر3
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك استخدام مكتبة shutil فهي أبسط طريقة لنسخ ملف من مصدر نحو اتجاه أخر 

src: الاتجاه الكامل للملف المنسوخ

dst: الاتجاه  الكامل الذي سوف ينسخ اليه الملف

 

from shutil import copyfile
copyfile(src, dst)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

اريد في بايثون نسخ ملف

بتاريخ 22 دقائق مضت قال Jony Mony:
from shutil import copyfile
path1 = input("Please enter the first track you want to copy to your device : ")
path2 = input("Please enter the second track you want to copy to your device : ")
copyfile(path1, path2)

لم يتحقق الكود يظهر لي خطاء

 

تم التعديل في بواسطة Jony Mony
كان هناك خطاء في المتغيرات ولم يتحقق الكود في ال(copyfile)
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال Jony Mony:

اريد في بايثون نسخ ملف

أولاً عليك تفهم أنك تريد نسخ الملف الأول path1 إلى المجلد الموجود في path2، لذلك:

  1. عليك التحقق من أن الملف الذي تحاول نسخه موجود في المسار path1، فإن كان الملف غير موجود، ستحصل على خطأ.
  2. تأكد من أن المجلد الذي تحاول نسخ الملف إليه موجود في المسار path2، فلو كان المجلد غير موجود، ستحصل على خطأ.
  3. تأكد من أن لديك أذونات كافية لقراءة الملف الموجود في path1 ولكتابة الملف في path2.
  4. تأكد من أن المسارات التي تم إدخالها في path1 و path2 تحتوي على اسم الملف الذي ترغب في نسخه، فلو كنت تحاول نسخ ملف يسمى "file.txt"، يجب أن تكون المسارات تحتوي على اسم الملف، مثل "/path/to/source/file.txt" و "/path/to/destination/file.txt".

تستطيع أيضًا استخدام الأمر try وexcept للتعامل مع الأخطاء المحتملة، كالتالي:

from shutil import copyfile

path1 = input("Please enter the source file you want to copy: ")
path2 = input("Please enter the destination path where you want to copy the file: ")

try:
    copyfile(path1, path2)
    print("File copied successfully.")
except FileNotFoundError:
    print("Source file not found.")
except IsADirectoryError:
    print("Destination is a directory. Please provide a full destination path including the file name.")
except PermissionError:
    print("Permission denied. Make sure you have the necessary permissions.")
except Exception as e:
    print(f"An error occurred: {e}")

ويمكن تحسين التحقق من وجود الملف والمجلد بطرق أفضل باستخدام الوحدة os في Python، كالتالي:

from shutil import copyfile
import os

    path1 = input("Please enter the first track you want to copy to your device : ")
    path2 = input("Please enter the directory you want to copy the track to : ")

    # Check if the first track exists
    if not os.path.isfile(path1):
        print("The first track does not exist. Please enter a valid file path.")
        return

    # Check if the directory exists
    if not os.path.isdir(path2):
        print("The directory does not exist. Please enter a valid directory path.")
        return

    # Copy the first track to the directory
    copyfile(path1, os.path.join(path2, os.path.basename(path1)))

والفكرة من السطر التالي:

 copyfile(path1, os.path.join(path2, os.path.basename(path1)))

هو أنه يتم تحديد مسار الملف المصدر ببساطة باسم الملف المدخل من المستخدم، وتحديد مسار الملف الوجهة باستخدام دالة os.path.join()، حيث أن دالة os.path.join() تأخذ عدة مسارات كمدخلات وتعيد مسارًا واحدًا يتضمن جميع المسارات المدخلة.

بمعنى أنه تم استخدام الدالة os.path.join() لإنشاء مسار ملف يتضمن مسار المجلد path2 واسم الملف path1، فلو كان path1 هو "track1.mp3" وpath2 هو "/home/user/music"، فإن الدالة os.path.join() ستعيد المسار "/home/user/music/track1.mp3".

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 50 دقائق مضت قال Jony Mony:

اريد ان ابحث داخل ملف مع التلوين

لقد حولة و ما زلت احول ولم يتنفد اي شىء من الأكواد

أرجو توضيح ما المقصود بالضبط، أي ما الذي تحاول فعله وإن إمكن توفير الكود الذي تواجه به مشكلة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لقد انتهيت من الكود و حليت المشكلة

شكراً لك لقد حلية الكود

اريد تغيير النص من ملف هاذا الكود لم يتنفذ

fi = input("Enter The Name The File... ")
extension = input("Enter The Extension The File... ")
fil = open(rf"{fi}.{extension}" , 'r')
filedata = fil.read()
fil.close()


ii = input("Enter The Edit The File... ")
dd = input("Enter The Edit the rep The File... ")
newdata = filedata.replace(rf"{ii}",rf"{dd}")

fil = open(rf"{fi}.{extension}" , 'w')
fil.write(newdata)
fil.close()

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال Jony Mony:

اريد تغيير النص من ملف هاذا الكود لم يتنفذ

fi = input("Enter The Name The File... ")
extension = input("Enter The Extension The File... ")
fil = open(rf"{fi}.{extension}" , 'r')
filedata = fil.read()
fil.close()


ii = input("Enter The Edit The File... ")
dd = input("Enter The Edit the rep The File... ")
newdata = filedata.replace(rf"{ii}",rf"{dd}")

fil = open(rf"{fi}.{extension}" , 'w')
fil.write(newdata)
fil.close()

 

عليك التأكد من أن المسار في منفذ الأوامر هو نفس المار الخاص بالملف، فلو كان الملف النصي على سطح المكتب باسم new.txt عليك فتح منفذ الأوامر في مسار سطح المكتب كالتالي:

Snag_1592472.thumb.png.1dfde02abf2556f4da5735a1ec0e6707.png

ثم تشغيل الملف الذي به الكود وكتابة اسم الملف ثم كتابة اسم صيغة الملف، ثم كتابة النص الذي تريد استبداله ثم كتابة النص الجديد.

وإليك الكود الصحيح:

try:
    file_name = input("Enter the name of the file you want to edit: ")
    file_extension = input("Enter the file extension: ")
    file_path = rf"{file_name}.{file_extension}"

    with open(file_path, 'r') as file:
        file_content = file.read()

    old_text = input("Enter the text you want to replace: ")
    new_text = input("Enter the replacement text: ")
    new_content = file_content.replace(old_text, new_text)

    with open(file_path, 'w') as file:
        file.write(new_content)

    print("File has been successfully edited.")
except FileNotFoundError:
    print("Error: The specified file was not found.")
except Exception as e:
    print(f"An error occurred: {str(e)}")

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هاذا الكود يخفي ملف إو المجلد

from os import *
print('attrib "مسار الملف أو المجلد الذي تريد إخفائه"\"بعد ذالك  إدخل اسم الملف إو المجلد" +s +r +h')
Hide = input("The path of the file or folder you want to hide : ")
system(Hide)

 

تم التعديل في بواسطة Jony Mony
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
read = open(R"C:\Users\Hass\desktop\txt.txt","r")
re = read.read()

for i in range(len(re)):
    try:
        r = re.split('\n')
        r1 = r[i].split(':')
        # r2 = r1[1].replace(r1[1][0],r1[1][0].title())
        r3 = r1[1][1:-1],r1[1][1:-1].lower()
        # print(r2)
        print(str(r1[1]).replace(r1[1][0],r3),"aafs")
    except Exception as ex:
        print(ex)
        continue

لدي ملف يوجد فيه إيميلات وبعد الإيميل : وهنا الباسورد أريد إن يقوم بتحويل أول حرف من الباسورد إذاكان حرف إلى كبتل

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعة قال Jony Rony:
read = open(R"C:\Users\Hass\desktop\txt.txt","r")
re = read.read()

for i in range(len(re)):
    try:
        r = re.split('\n')
        r1 = r[i].split(':')
        # r2 = r1[1].replace(r1[1][0],r1[1][0].title())
        r3 = r1[1][1:-1],r1[1][1:-1].lower()
        # print(r2)
        print(str(r1[1]).replace(r1[1][0],r3),"aafs")
    except Exception as ex:
        print(ex)
        continue

لدي ملف يوجد فيه إيميلات وبعد الإيميل : وهنا الباسورد أريد إن يقوم بتحويل أول حرف من الباسورد إذاكان حرف إلى كبتل

 

نستخدم الدالة isalpha() لفحص ما إذا كان الحرف الأول من الباسورد حرفًا أم لا على النحو التالي:

def convert_first_letter_to_capital(password):
  if password[0].isalpha():
    return password[0].upper() + password[1:]
  else:
    return password

read = open(R"C:\Users\Hass\desktop\txt.txt","r")
re = read.read()

for i in range(len(re)):
  try:
    r = re.split('\n')
    r1 = r[i].split(':')
    password = r1[1]
    password = convert_first_letter_to_capital(password)
    print(str(r1[0]) + ":" + password,"aafs")
  except Exception as ex:
    print(ex)
    continue

وإليك مثال آخر باستخدام الدالة replace():

def convert_first_letter_to_capital(password):
  if password[0].isalpha():
    return password.replace(password[0], password[0].upper())
  else:
    return password

read = open(R"C:\Users\Hass\desktop\txt.txt","r")
re = read.read()

for i in range(len(re)):
  try:
    r = re.split('\n')
    r1 = r[i].split(':')
    password = r1[1]
    password = convert_first_letter_to_capital(password)
    print(str(r1[0]) + ":" + password,"aafs")
  except Exception as ex:
    print(ex)
    continue

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...