kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 user1130955
user1130955
Question

Bagaimana cara mengubah nama folder di python?

Saya memiliki beberapa folder yang masing-masing berisi nama orang, dengan nama depan di depan dan nama belakang di belakang. Saya ingin mengubah nama folder sehingga nama belakang diikuti dengan koma terlebih dahulu, lalu diikuti nama depan.

Sebagai contoh, dalam folder Test, saya memiliki:

C:/Test/John Smith
C:/Test/Fred Jones
C:/Test/Ben Jack Martin

dan saya ingin membuat ini:

C:/Test/Smith, John
C:/Test/Jones, Fred
C:/Test/Martin, Ben Jack

Saya telah mencoba beberapa hal dengan os.rename namun saya tidak dapat membuatnya bekerja dengan panjang nama yang bervariasi, dan saya tidak yakin bagaimana cara menyisipkan koma ke dalam nama belakang.

Selain itu, beberapa nama folder sudah dalam bentuk yang benar, jadi saya harus melewatkan folder-folder ini selama penggantian nama. Saya pikir Anda dapat melakukan ini dengan hanya menambahkan if, sehingga jika nama folder mengandung koma, maka nama folder akan dilanjutkan.

Jika tidak, nama keluarga akan selalu menjadi kata terakhir dalam nama folder.

Terima kasih atas bantuan yang dapat Anda berikan.

20 2012-01-04T22:56:44+00:00 3
 Wooble
Wooble
Pertanyaan edit 17 Januari 2012 в 12:42
Pemrograman
python
rename
Solution / Answer
 phihag
phihag
4 Januari 2012 в 11:02
2012-01-04T23:02:42+00:00
Lebih
Sumber
Sunting
#15110939

Anda dapat menuliskannya dengan cukup mudah, menggunakan os.listdir dan fungsi os.path:

import os
basedir = 'C:/Test'
for fn in os.listdir(basedir):
  if not os.path.isdir(os.path.join(basedir, fn)):
    continue # Not a directory
  if ',' in fn:
    continue # Already in the correct form
  if ' ' not in fn:
    continue # Invalid format
  firstname,_,surname = fn.rpartition(' ')
  os.rename(os.path.join(basedir, fn),
            os.path.join(basedir, surname + ', ' + firstname))
32
0
 jgritty
jgritty
4 Januari 2012 в 11:01
2012-01-04T23:01:12+00:00
Lebih
Sumber
Sunting
#15110938
os.rename("Joe Blow", "Blow, Joe")

Sepertinya bekerja dengan baik untuk saya. Bagian mana yang Anda alami masalah?

9
0
Zachary Young
Zachary Young
4 Januari 2012 в 11:46
2012-01-04T23:46:16+00:00
Lebih
Sumber
Sunting
#15110940

Saya suka saran phihag tentang rpartition(), saya pikir yang berikut ini hampir sama:

>>> 'first second third fourth'.rpartition(' ')
('first second third', ' ', 'fourth')
>>> 'first second third fourth'.rsplit(None, 1)
['first second third', 'fourth']

Saya lebih suka rsplit() karena saya tidak ingin peduli dengan pemisahnya, tetapi saya juga bisa melihat bahwa itu sedikit lebih bertele-tele.

Penyiapan

>>> base = 'C:\\Test'
>>> os.makedirs(os.path.join(base, 'John Smith'))
>>> os.makedirs(os.path.join(base, 'Fred Jones'))
>>> os.makedirs(os.path.join(base, 'Ben Jack Martin'))
>>> os.listdir(base)
['Ben Jack Martin', 'Fred Jones', 'John Smith']

Solusi

>>> for old_name in os.listdir(base):
    # [::-1] is slice notation for "reverse"
    new_name = ', '.join(old_name.rsplit(None, 1)[::-1])
    os.rename(os.path.join(base, old_name),
          os.path.join(base, new_name))

>>> os.listdir(base)
['Jones, Fred', 'Martin, Ben Jack', 'Smith, John']
Zachary Young
Zachary Young
Jawaban edit 4 Januari 2012 в 11:51
3
0
Related communities 6
Python Indonesia
Python Indonesia
25 937 pengguna
Programmer Python Indonesia. Group ini dikelola oleh sejumlah admin. Baca pesan tersemat / pinned message: https://t.me/pythonID/217588
Buka telegram
Indonesian Python Warriors
Indonesian Python Warriors
1 437 pengguna
Di grup ini tidak ada kewajiban untuk menggunakan username dan foto. Yang tidak boleh adalah spamming. Gak boleh baper, kalau nanya yang bener, eror jangan difoto pake HP, gunakan screenshot, code copas ke dpaste.org lalu share link ke sini.
Buka telegram
Python-ID Jogja
Python-ID Jogja
949 pengguna
Buka telegram
Python Newbie Indonesia
Python Newbie Indonesia
384 pengguna
Peraturan grup Python Newbie 🌻Dilarang spam 🌻Dilarang menggunakan bahasa kasar 🌻Dilarang beriklan di grup tanpa seizin admin Beberapa video dasar python dapat diliat melalui channel youtube juan aditya Jangan lupa untuk subscribe ya🙏
Buka telegram
BASIC PYTHON INDONESIA
BASIC PYTHON INDONESIA
342 pengguna
Buka telegram
PythonWealth Indonesia 🇮🇩
PythonWealth Indonesia 🇮🇩
18 pengguna
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
工藤 芳則
Terdaftar 6 hari yang lalu
2
Ирина Беляева
Terdaftar 1 minggu yang lalu
3
Darya Arsenyeva
Terdaftar 1 minggu yang lalu
4
anyta nuam-nuam (LapuSiK)
Terdaftar 1 minggu yang lalu
5
Shuhratjon Imomkulov
Terdaftar 1 minggu yang lalu
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi