[英]python open file from path generate
嗨,我從CSV文件信息構建路徑文件,但在打開文件錯誤
No such file or directory: 'C:\\New folder\\a\\\xef\xbb\xbf90305.xlsx'
當我打印文件名顯示
C:\New folder\a\90305.xlsx
請幫忙
with open (r'C:\New folder\li.csv','rb')as csvfile:
spamreader=csv.reader(csvfile,delimiter=',')
for row in spamreader:
filename = r'C:\New folder\a'
suffix='.xlsx'
filename=os.path.join(filename,row[0]+suffix)
with open(filename,"rb")as fo:
print fo
文件名前綴row[0]
是UTF-8編碼的,並且以Unicode 字節順序標記(BOM)開頭。
您可以使用以下代碼對其進行解碼 :
prefix = row[0].decode('utf-8-sig')
filename = os.path.join(filename, prefix + suffix)
要閱讀有關編碼的更多信息,請參見7.8.2。 手冊中的編碼和Unicode 。
似乎正在發生一些編碼問題。 CSV文件中的數據已編碼,因此請使用codecs
模塊(Python 2)打開文件,或在打開文件時指定編碼(Python 3)。 假設采用UTF8編碼,並使用utf-8-sig
編解碼器來處理文件開頭的所有字節順序標記(BOM):
Python 2
import codecs
with codecs.open(r'C:\New folder\li.csv','rb', encoding='utf-8-sig') as csvfile:
etc.
Python 3
with open(r'C:\New folder\li.csv','rb', encoding='utf-8-sig') as csvfile:
etc.
假定只有一個UTF8 BOM,並且它出現在文件的開頭,而不是文件中的隨機點。 您正在使用Windows,所以這不是一個壞假設。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.