Hậu tố thay thế tệp Python

Bạn đã bao giờ cần thay đổi phần mở rộng tệp cho mọi tệp trong thư mục hiện tại nhưng không muốn phải thực hiện thủ công cho mọi tệp chưa?

Bash

Đổi tên tệp có phần mở rộng

for file in *.old; do mv "$file" "$[basename "$file" .old].new" done

Xóa tệp có phần mở rộng

for file in *.old; do rm "$file" done

Thay thế tất cả các lần xuất hiện trong tệp bằng phần mở rộng

for file in *.old; do sed -i 's/replaceMe/replaceWith/g' $file done

Thay thế tất cả các lần xuất hiện trong tất cả các tệp

for file in *.*; do sed -i 's/replaceMe/replaceWith/g' $file done

con trăn

Đổi tên tệp có phần mở rộng

import os, sys for filename in os.listdir[]: if not os.path.isfile[filename]: continue newname = filename.replace['.old', '.new'] os.rename[filename, newname]

Xóa tệp có phần mở rộng

import os, sys for filename in os.listdir[]: if not os.path.isfile[filename]: continue if not filename.endswith[".old"]: continue os.remove[filename]

Thay thế tất cả các lần xuất hiện trong tệp bằng phần mở rộng

import os, sys for filename in os.listdir[]: if not os.path.isfile[filename]: continue if not filename.endswith[".old"]: continue f = open[filename, "r"] contents = f.read[] f.close[] contents = contents.replace["replaceMe", "replaceWith"] f = open[filename, "w"] f.write[contents]

Thay thế tất cả các lần xuất hiện trong tất cả các tệp

import os, sys for filename in os.listdir[]: if not os.path.isfile[filename]: continue f = open[filename, "r"] contents = f.read[] f.close[] contents = contents.replace["replaceMe", "replaceWith"] f = open[filename, "w"] f.write[contents]

Trong tất cả những điều này, thay thế. cũ và. mới với các phần mở rộng tệp bạn chọn và thay thế tất cả các lần thay thế của tôi bằng thay thếWith trong tất cả các tệp có. phần mở rộng tệp cũ, thay thế replaceMe và replaceWith bằng văn bản bạn chọn

Tiếp theo từ trang này về mô-đun

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
3, đây là cách di chuyển và đổi tên tệp trong Python

Xác định các thư mục đầu vào và đầu ra nơi bạn muốn di chuyển các tệp của mình từ và đến

# Folder admin
move_from = 'Input Folder'
move_to = 'Output Folder'

Mặc dù các chuỗi có thể được sử dụng cho việc này [như đã được thực hiện ở trên], nhưng thay vào đó, tốt nhất là sử dụng các đối tượng đường dẫn

for file in *.old; do rm "$file" done

0

Không chỉ là thực tế là các đối tượng Đường dẫn có thể dễ dàng làm việc hơn, đó là nguyên tắc

Nói chung, bạn muốn các đối tượng là những gì họ đang có. số phải là int hoặc float, tên phải là chuỗi và đường dẫn tệp phải là đối tượng đường dẫn. Nó giúp đảm bảo rằng mã của bạn làm những gì bạn muốn và giúp bất kỳ ai đọc mã của bạn dễ dàng tìm ra những gì nó làm.

Chúng tôi có thể liệt kê các tệp trong thư mục đầu vào của mình bằng hàm

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
4

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]

for file in *.old; do rm "$file" done

3

Các tệp này sẽ được liệt kê theo thứ tự tùy ý. Sắp xếp chúng theo thứ tự bảng chữ cái bằng cách sử dụng hàm

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
5 để sắp xếp danh sách

for file in *.old; do rm "$file" done

5

for file in *.old; do rm "$file" done

6

Nếu có một số tệp bạn muốn loại trừ khỏi bất kỳ công việc gì bạn đang làm, bạn có thể xóa chúng khỏi danh sách bằng phương pháp

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
6 [đừng nhầm với hàm
import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
7 dùng để xóa tệp]

for file in *.old; do rm "$file" done

9

for file in *.old; do sed -i 's/replaceMe/replaceWith/g' $file done

0

Nếu bạn đang chạy tập lệnh của mình trong cùng thư mục với các tệp bạn muốn di chuyển/đổi tên, bạn sẽ thấy tên tập lệnh của mình có trong đầu ra của

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
4. Đây không phải là điều tốt - chúng tôi không muốn tập lệnh di chuyển và/hoặc tự đổi tên khi bạn đang chạy tập lệnh đó. Bạn có thể loại trừ nó theo cách thủ công bằng cách sử dụng
import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
9, nhưng tất nhiên, bạn sẽ cần thay đổi nó nếu bạn sao chép mã này vào một tệp khác. Một cách hiệu quả hơn để thực hiện việc này là tự động lấy tên của tập lệnh bằng cách sử dụng tham số

for file in *.old; do rm "$file" done

30. Tham số này [được gọi là “dunder file” - viết tắt của “double-underscore file”] được tạo tự động khi bạn chạy tập lệnh và chứa đường dẫn của nó

for file in *.old; do sed -i 's/replaceMe/replaceWith/g' $file done

4

for file in *.old; do sed -i 's/replaceMe/replaceWith/g' $file done

5

Tên tệp sau đó có thể được trích xuất bằng cách sử dụng

for file in *.old; do rm "$file" done

31

for file in *.old; do rm "$file" done

00

for file in *.old; do rm "$file" done

01

Điều này có thể được sử dụng kết hợp với

import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
6. Tuy nhiên, nếu sau đó bạn sử dụng tập lệnh của mình với thư mục đầu vào không phải là thư mục hiện tại thì nó sẽ báo lỗi [vì hàm
import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
6 sẽ cố xóa tên tập lệnh của bạn khỏi danh sách do
import os

# List the files in a directory
filenames = os.listdir[move_from]
print[filenames]
4 tạo nhưng sẽ không tìm thấy nó]. Để giải quyết vấn đề này và làm cho tập lệnh của bạn hoàn toàn mạnh mẽ, hãy làm cho tập lệnh có thể phát hiện lỗi này nếu phát sinh

for file in *.old; do rm "$file" done

02

Python không thể được sử dụng để di chuyển tệp trực tiếp, nhưng nó có thể được sử dụng để chạy các lệnh hệ thống trong thiết bị đầu cuối/dòng lệnh. Một lệnh như vậy là

for file in *.old; do rm "$file" done

35 để di chuyển các tệp, do đó có thể được gọi cho các mục đích của chúng tôi

for file in *.old; do rm "$file" done

03

for file in *.old; do rm "$file" done

04

Điều này được thực hiện với chức năng

for file in *.old; do rm "$file" done

36. Tất nhiên, bạn có thể thay đổi tên tệp thành bất kỳ tên nào bạn muốn [miễn là bạn không sử dụng bất kỳ ký tự dành riêng nào của hệ thống tệp của mình] nhưng trong ví dụ này, tôi sẽ thay đổi tên tệp bằng cách nối thêm dấu thời gian từ khi chúng được sửa đổi lần cuối. Dấu thời gian này được cung cấp bởi hàm

for file in *.old; do rm "$file" done

37 [lấy thời gian đã sửa đổi] và là một số biểu thị thời gian tính bằng 'giây kể từ Kỷ nguyên'. Chúng tôi có thể chuyển đổi nó thành dấu thời gian mà con người có thể đọc được bằng cách sử dụng mô-đun

for file in *.old; do rm "$file" done

38

for file in *.old; do rm "$file" done

05

for file in *.old; do rm "$file" done

06

Đôi khi các chương trình sẽ tạo các phần mở rộng là vốn. Điều này không thực sự tạo ra sự khác biệt, nhưng đây là một số mã sẽ chuyển đổi các phần mở rộng trong danh sách tên tệp thành các chữ cái viết thường. Khi điều này được thực hiện [hoặc đồng thời], các tệp có thể được đổi tên

Làm cách nào để xóa phần mở rộng tệp?

Người dùng Windows .
Nhấp chuột phải vào tệp [không phải phím tắt]
Chọn Đổi tên trong menu
Xóa. txt từ myfile. txt và nhấn Enter
Nhấp vào Có trên cảnh báo về việc tệp trở nên không sử dụng được nếu bạn chắc chắn muốn xóa phần mở rộng tên tệp

Làm cách nào để thêm phần mở rộng tệp trong Python?

Phương pháp 1. Sử dụng hàm splittext[] của mô-đun Python os .

Hậu tố của một tập tin là gì?

Phần mở rộng là viết tắt gồm ba hoặc bốn chữ cái biểu thị loại tệp . Chẳng hạn, trong thư. docx tên tệp là chữ cái và phần mở rộng là docx. Tiện ích mở rộng rất quan trọng vì chúng cho máy tính của bạn biết nên sử dụng biểu tượng nào cho tệp và ứng dụng nào có thể mở tệp.

Chủ Đề