Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Đưa ra hai tệp văn bản, nhiệm vụ là viết chương trình Python để sao chép nội dung của tệp thứ nhất vào tệp thứ hai.UsingFile handling to read and append
Các tệp văn bản sẽ được sử dụng là thứ hai.txt và first.txt:
Example:
Python3
with
open
[
'first.txt'
,
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
0In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
1open
[
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
4,
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
6In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
7Phương pháp số 1: Sử dụng xử lýFile để đọc và nối thêm
In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
3In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
4Output:
Chúng tôi sẽ mở đầu tiên.txt trong ‘R, Modeand sẽ đọc nội dung của First.txt. Sau đó, chúng tôi sẽ mở Second.txt trong chế độ ‘Một chế độ và sẽ nối nội dung của First.txt vào Second.txt.Using File handling to read and write
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
8In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
9 In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
0In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
1 In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
2Example:
Python3
Phương pháp số 2: Sử dụng xử lýFile để đọc và viết
Phương pháp số 1: Sử dụng xử lýFile để đọc và nối thêm
In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
3In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
4Output:
Chúng tôi sẽ mở đầu tiên.txt trong ‘R, Modeand sẽ đọc nội dung của First.txt. Sau đó, chúng tôi sẽ mở Second.txt trong chế độ ‘Một chế độ và sẽ nối nội dung của First.txt vào Second.txt.Using shutil.copy[] module
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
8In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
9 In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
0In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
1 In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
2 method in Python is used to copy the content of the source
file to destination file or directory. Example:
Python3
Phương pháp số 2: Sử dụng xử lýFile để đọc và viết
In [30]: shutil.copy2[src, dst]
Out[30]: ~/desktop/Head+First+SQL.pdf'
In [31]: os.stat[src]
Out[31]: os.stat_result[st_mode=33188, st_ino=597749, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067055, st_mtime=1493698739, st_ctime=1514871215]
In [32]: os.stat[os.path.join[dst, 'Head+First+SQL.pdf']]
Out[32]: os.stat_result[st_mode=33188, st_ino=8598313736, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067063, st_mtime=1493698739, st_ctime=1516067055]
# Preseved st_mtime
7'first.txt'
,
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
4with
1Output:
Chúng tôi sẽ mở đầu tiên.txt trong ‘R, Modeand sẽ đọc nội dung của First.txt. Sau đó, chúng tôi sẽ mở Second.txt trong chế độ ‘W và sẽ viết nội dung của First.txt thành Second.txt.
shutil_methods =
{'copy':['shutil.copyfileobj',
'shutil.copyfile',
'shutil.copymode',
'shutil.copystat',
'shutil.copy',
'shutil.copy2',
'shutil.copytree',],
'move':['shutil.rmtree',
'shutil.move',],
'exception': ['exception shutil.SameFileError',
'exception shutil.Error'],
'others':['shutil.disk_usage',
'shutil.chown',
'shutil.which',
'shutil.ignore_patterns',]
}
Các
- Phương pháp số 3: Sử dụng mô -đun SHOWIL.Copy []
In [3]: src = '~/Documents/Head+First+SQL.pdf'
In [4]: dst = '~/desktop'
In [5]: shutil.copyfileobj[src, dst]
AttributeError: 'str' object has no attribute 'read'
#copy the file object
In [7]: with open[src, 'rb'] as f1,open[os.path.join[dst,'test.pdf'], 'wb'] as f2:
...: shutil.copyfileobj[f1, f2]
In [8]: os.stat[os.path.join[dst,'test.pdf']]
Out[8]: os.stat_result[st_mode=33188, st_ino=8598319475, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067347, st_mtime=1516067335, st_ctime=1516067345]
- Phương thức SOWN.Copy [] trong Python được sử dụng để sao chép nội dung của tệp nguồn vào tệp hoặc thư mục đích. & NBSP;
In [9]: shutil.copyfile[src, dst]
IsADirectoryError: [Errno 21] Is a directory: ~/desktop'
#so dst should be a filename instead of a directory name
5In [30]: shutil.copy2[src, dst] Out[30]: ~/desktop/Head+First+SQL.pdf' In [31]: os.stat[src] Out[31]: os.stat_result[st_mode=33188, st_ino=597749, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067055, st_mtime=1493698739, st_ctime=1514871215] In [32]: os.stat[os.path.join[dst, 'Head+First+SQL.pdf']] Out[32]: os.stat_result[st_mode=33188, st_ino=8598313736, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067063, st_mtime=1493698739, st_ctime=1516067055] # Preseved st_mtime
6In [30]: shutil.copy2[src, dst] Out[30]: ~/desktop/Head+First+SQL.pdf' In [31]: os.stat[src] Out[31]: os.stat_result[st_mode=33188, st_ino=597749, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067055, st_mtime=1493698739, st_ctime=1514871215] In [32]: os.stat[os.path.join[dst, 'Head+First+SQL.pdf']] Out[32]: os.stat_result[st_mode=33188, st_ino=8598313736, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067063, st_mtime=1493698739, st_ctime=1516067055] # Preseved st_mtime
In [10]: shutil.copy[src, dst]
Out[10]: ~/desktop/Head+First+SQL.pdf'
#check their metadata
In [25]: os.stat[src]
Out[25]: os.stat_result[st_mode=33188, st_ino=597749, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516066425, st_mtime=1493698739, st_ctime=1514871215]
In [26]: os.stat[os.path.join[dst, 'Head+First+SQL.pdf']]
Out[26]: os.stat_result[st_mode=33188, st_ino=8598313736, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516066427, st_mtime=1516066425, st_ctime=1516066425]
# st_atime,st_mtime,st_ctime changed
- Đầu tiên, tôi đã thực hiện một bảng cheat đầy đủ các phương thức Shutil để bạn tham khảo.
In [30]: shutil.copy2[src, dst]
Out[30]: ~/desktop/Head+First+SQL.pdf'
In [31]: os.stat[src]
Out[31]: os.stat_result[st_mode=33188, st_ino=597749, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067055, st_mtime=1493698739, st_ctime=1514871215]
In [32]: os.stat[os.path.join[dst, 'Head+First+SQL.pdf']]
Out[32]: os.stat_result[st_mode=33188, st_ino=8598313736, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=13507926, st_atime=1516067063, st_mtime=1493698739, st_ctime=1516067055]
# Preseved st_mtime
with
6
Thứ hai, giải thích các phương thức sao chép trong exmaples: