Tôi đang chạy mã python trên Windows và cố gắng duyệt và lưu trữ tất cả tên tệp bằng đường dẫn của chúng trong tệp. Nhưng Windows có giới hạn 260 ký tự.Python Cách sử dụng độ dài đường dẫn mở rộng
os.chdir(self.config.Root_Directory_Path())
for root, dirs, files in os.walk("."):
file_list.extend(join(root,f) for f in files)
file_name_sorted = sorted(file_list)
#file_sorted = sorted(file_list, key=getsize)
#time.strftime("%m/%d/%Y %I:%M:%S %p" ,time.localtime(os.path.getmtime(file)))
f = open(self.config.Client_Local_Status(),'wb')
for file_name in file_name_sorted:
if (os.path.exists(file_name)):
#f.write((str(os.path.getmtime(file_name)) + "|" + file_name + "\n").encode('utf-8'))
pass
else:
print(file_name + "|" + str(len(file_name) + len(originalPath)) + "\n")
print(os.path.getmtime(file_name))
#f.write((str(os.path.getmtime(file_name)) + "|" + file_name + "\n").encode('utf-8'))
f.close()
Do lỗi, os.path.getmtime (file_name) ném một tệp ngoại lệ không tìm thấy. Làm thế nào tôi có thể khắc phục vấn đề này? Tôi đã cố gắng sử dụng //?/Nhân vật như tiền tố, như đề xuất trong
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Nhưng đã không thành công trong việc sử dụng //?/Nhân vật.
tôi đã cố gắng sử dụng os.path.getmtime ("////? //" + file_name) #Threw một lỗi đường dẫn không hợp lệ
Xin gợi ý cho một sửa chữa
@PedroRomano Không sao cả. Cảm ơn ... Mong một số trợ giúp – Romaan
@PedroRomano Tôi đã tìm kiếm giải pháp như điên trong gần 2 ngày nay. Xin vui lòng upvote này vì vậy nếu bạn thích câu hỏi để tôi muốn nhiều người có thể nhìn thấy điều này. Cảm ơn – Romaan
Nếu bạn đang sử dụng dấu gạch chéo về phía trước, đừng gấp đôi chúng như thế. Chỉ có các dấu gạch chéo ngược cần phải được tăng gấp đôi, bởi vì dấu gạch chéo ngược là ký tự thoát cho các chuỗi (không phải thô); slash là một nhân vật hoàn toàn bình thường. Hãy thử chỉ làm ''//? /'' Thay vì ''////? //'' và xem điều gì xảy ra. – abarnert