Tôi có một tập lệnh Python so sánh các tên tệp hiện có trong một thư mục với bảng tham chiếu và sau đó xác định xem nó có cần được đổi tên hay không.
Khi nó lặp qua mỗi tên tệp:
'oldname' = the current file name 'newname' = what it needs to be renamed toTôi muốn đổi tên tệp và chuyển nó thành một thư mục mới ".. \ RenamedFiles"
Tôi có thể đổi tên và di chuyển cùng một lúc khi nó lặp lại qua vòng lặp không?
Tomerikoo
16.8K15 Huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng15 gold badges38 silver badges57 bronze badges
Đã hỏi ngày 1 tháng 3 năm 2017 lúc 20:47Mar 1, 2017 at 20:47
4
Có bạn có thể làm điều này. Trong Python, bạn có thể sử dụng chức năng move trong thư viện SHOTIL để đạt được điều này.
Giả sử trên Linux, bạn có một tệp trong thư mục /home/user/Downloads có tên là "test.txt" và bạn muốn chuyển nó sang /home/user/Documents và cũng thay đổi tên thành "hữu ích_name.txt". Bạn có thể làm cả hai mọi thứ trong cùng một dòng mã:
import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt')Trong trường hợp của bạn, bạn có thể làm điều này:
import shutil shutil.move('oldname', 'renamedfiles/newname')
Tomerikoo
16.8K15 Huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng15 gold badges38 silver badges57 bronze badges
Đã hỏi ngày 1 tháng 3 năm 2017 lúc 20:47Mar 1, 2017 at 21:15
Có bạn có thể làm điều này. Trong Python, bạn có thể sử dụng chức năng move trong thư viện SHOTIL để đạt được điều này.Danny
Giả sử trên Linux, bạn có một tệp trong thư mục /home/user/Downloads có tên là "test.txt" và bạn muốn chuyển nó sang /home/user/Documents và cũng thay đổi tên thành "hữu ích_name.txt". Bạn có thể làm cả hai mọi thứ trong cùng một dòng mã:4 silver badges6 bronze badges
Trong trường hợp của bạn, bạn có thể làm điều này:
Đã trả lời ngày 1 tháng 3 năm 2017 lúc 21:15Mar 1, 2017 at 20:57
DannydannyShadowRanger
6014 Huy hiệu bạc6 Huy hiệu đồng12 gold badges173 silver badges249 bronze badges
2
os.rename (và import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 0) sẽ không hoạt động nếu các vị trí nguồn và đích ở các phân vùng/ổ đĩa/thiết bị khác nhau. Nếu đó là trường hợp, bạn cần sử dụng import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 1, sẽ sử dụng đổi tên nguyên tử nếu có thể và dự phòng để sao chép-sau đó là điểm đến không nằm trong cùng một hệ thống tệp. Nó hoàn toàn hạnh phúc khi cả di chuyển và đổi tên trong cùng một hoạt động; Các hoạt động là như nhau bất kể.
Đã trả lời ngày 1 tháng 3 năm 2017 lúc 20:57
Shadowrangershadowranger
# In Windows dest_dir = "tmp\\2" new_name = "bar.txt" current_file_name = "tmp\\1\\foo.txt" os.rename(current_file_name, os.path.join(dest_dir, new_name))Huy hiệu vàng 133K12
Để thực hiện cả hai hoạt động, bạn có thể sử dụng chức năng import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 2.
Đã trả lời ngày 1 tháng 3 năm 2017 lúc 21:15Mar 1, 2017 at 20:57
DannydannyOfer Arial
6014 Huy hiệu bạc6 Huy hiệu đồng1 gold badge10 silver badges24 bronze badges
0
os.rename (và import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 0) sẽ không hoạt động nếu các vị trí nguồn và đích ở các phân vùng/ổ đĩa/thiết bị khác nhau. Nếu đó là trường hợp, bạn cần sử dụng import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 1, sẽ sử dụng đổi tên nguyên tử nếu có thể và dự phòng để sao chép-sau đó là điểm đến không nằm trong cùng một hệ thống tệp. Nó hoàn toàn hạnh phúc khi cả di chuyển và đổi tên trong cùng một hoạt động; Các hoạt động là như nhau bất kể.
import os for filename in os.listdir("."): if(filename ...): newFilename = ... os.rename(filename, newFilename)Đã trả lời ngày 1 tháng 3 năm 2017 lúc 20:57Mar 1, 2017 at 20:53
Shadowrangershadowranger
from pathlib import Path source = Path("path/to/file/oldname") target = source.replace(source.parent / "renames" / "newname")Huy hiệu vàng 133K12Jan 18 at 17:34
Để thực hiện cả hai hoạt động, bạn có thể sử dụng chức năng import shutil shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt') 2.Tomerikoo
16.8K15 Huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng15 gold badges38 silver badges57 bronze badges