如何在Python中適當地獲取當前工作目錄中的名稱列表中文?如何在python中正確地使用中文獲取文件名?
例如,在我的演示文件夾中,我有四個文件: 「folder_中文」 「folder_a」 「folder_b」 「folder_c」
在RI可以使用下面的命令來實現這個:
Sys.setlocale(category = "LC_ALL", locale = "zh_cn.utf-8")
setwd("~/desktop/example")
filenames=list.files()
filenames
"folder_中文" "folder_a" "folder_b" "folder_c"
但我失敗在Python與蟒蛇來實現這一點,但如果我不阿西gn它的文件名,輸出看起來很好(見下文);中文文件名不正確。
# -*- coding: utf-8 -*-
import os
os.chdir('/Users/../Desktop/example')
! ls
filenames = ! ls
filenames
folder_a folder_b folder_c folder_中文
['folder_a', 'folder_b', 'folder_c', 'folder_\xe4\xb8\xad\xe6\x96\x87']
,但如果我繼續鍵入
print(filenames)
print(filenames[3])
如果我解壓此特定元素的中國可以觀察並直接打印出來。
['folder_a', 'folder_b', 'folder_c', 'folder_\xe4\xb8\xad\xe6\x96\x87']
folder_中文
我想強調的最後一件事是,如果我直接輸入中國,我可以正確地看到中國只有當我使用打印以明確的方式。所以有或沒有打印對它有很大的影響。
print('中文')
'中文'
中文
Out[65]: '\xe4\xb8\xad\xe6\x96\x87'
我的操作系統是Mac的EI匹(10.11.5)和森蚺的版本是:
2.7.13 |Anaconda custom (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
當查看列表或一個調試器或在交互提示字符串,Python的顯示'再版()'的字符串,它使用非ASCII碼的轉義碼。 'print'顯示字符串的'str()'。內容相同,只是它顯示的方式:'中文'=='\ xe4 \ xb8 \ xad \ xe6 \ x96 \ x87'。你必須打印它才能正確地看到它。請注意,這是Python 2特有的。 Python 3默認爲Unicode字符串,即使在'repr()'情況下也會嘗試顯示它們。 –
我建議你使用內置的python函數,例如。 'os.listdir()'將返回目錄中的文件列表。 – roeland
是的。 'print str('中文')'返回與'print'中文''相同的內容,但是如果我只輸入'str'('中文')',我就不會明白沒有答案的答案我作爲Python 2提出的具體問題在某種程度上與中文不兼容?我也注意到'os。 listdir()'也不能解決兼容性問題。 – johnsonzhj