我有几个小时来尝试在此处发布的代码。它们成功打开了文件,但是在保存文件时,它们仍然是Unicode文本格式,Python熊猫csv_reader不会读取它们。这是我的最新最大尝试。我的文件位于子文件夹“ QCfiles”中:
Sub LoopExample()
Dim MyFolder As String, MyFile As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With
Application.ScreenUpdating = False
MyFile = Dir(MyFolder & "\", vbReadOnly)
Do While MyFile <> ""
Workbooks.Open FileName:=MyFolder & "\" & MyFile, UpdateLinks:=False
MsgBox Cells(1, 1)
ActiveWorkbook.SaveAs FileName:=MyFile, FileFormat:=xlCSV
Workbooks(MyFile).Close savechanges:=True
MyFile = Dir
Loop
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
在修改CSV(通过VBA)之前,请尝试将参数传递给encoding
的{{1}}参数。
据我了解,pandas.read_csv()
默认为您的系统设置(如果您的区域设置是英语的某种变体,则可能为encoding
)。
要覆盖此隐式行为,您可以尝试传递'cp1252'
(或者可能需要encoding='utf-8'
),然后传递encoding='utf-8-bom'
来解码/使用Unicode字符。
假设您已将pandas
导入命名空间pandas
下,并且文件位于pd
(在Windows上):
C:\some_folder\ok.csv
我认为值得尝试,因为这可能是一种快速解决方案。
(其他选择可能是导入一些Python库,该库可以尝试推断文件的编码,然后使用该特定的编码,但这显然是更多的工作。
此外,当强制将Unicode强制转换为ASCII时,您可能会丢失信息/字节,具体取决于是否存在任何非ASCII字符。
答案 1 :(得分:0)
“这在R中有效”。我现在将切换回Python / Pandas进行进一步的工作。 R擅长读取混乱的数据”
install.packages('data.table') 库(data.table)
文件名<-Sys.glob(“ C:/ Users / fkean / TOS_csv / QCfiles / 。”)
对于(文件名中的f){
样本<-read_csv(f,skip = 2) write_csv(sample,f,append = FALSE)
}