Python 如何将数据从文件转储到excel工作表
我想将[3-4行]一些数据转储到excel工作表中。Python 如何将数据从文件转储到excel工作表,python,excel,Python,Excel,我想将[3-4行]一些数据转储到excel工作表中。 我可以根据一些标准来转储单行[例如,如果行以//或/*]开头,但如果行从/*开始,在3-4句话之后,则以*/结尾。 只有以/*开头的第一行和以*/结尾的最后一行可以转储。 我无法处理这种情况,请帮忙 以下是我的密码:- fileopen = open("test.c") for var in fileopen: if var.startswith("//"): var1 = var1 + var
我可以根据一些标准来转储单行[例如,如果行以//或/*]开头,但如果行从/*开始,在3-4句话之后,则以*/结尾。
只有以/*开头的第一行和以*/结尾的最后一行可以转储。
我无法处理这种情况,请帮忙 以下是我的密码:-
fileopen = open("test.c")
for var in fileopen:
if var.startswith("//"):
var1 = var1 + var
continue
if var.startswith("/*"):
var1 = var1 + var
continue
else:
continue
worksheet.write(i, 5,var1,cell_format)
注:-上述代码将有缩进问题。由于我不知道如何将代码正确地放入堆栈中,所以请忽略这个问题
例如:-/*测试是否为i386生成了正确的数据预取指令
使用3DNow的变体!带
位置提示*/ 我想通过python脚本一次转储整个数据,但我只能转储以/*开头的“第一行” 任何建议请
提前谢谢 此VBA读取文本文件并将所有注释行转储到第一个工作表中
import re
fileopen = open("test.c")
# Convert file to a string
source_code = ""
for var in fileopen:
source_code += var
# Find the first comment from the source code
pattern = r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"'
var1 = re.search(pattern, source_code, re.DOTALL | re.MULTILINE).group() # first comment
var1 = unicode(var1, errors='ignore')
worksheet.write(i, 5, var1, cell_format)
Public Sub test()
Dim iFN As Integer
Dim sLine As String
Dim iMultiple As Integer
Dim sComment As String
Dim iRow As Integer
iFN = FreeFile()
iMultiple = 0
sComment = ""
iRow = 1
'Change this path as required
Open "d:\temp\xl.txt" For Input As #iFN
While Not EOF(iFN)
sLine = ""
Line Input #iFN, sLine
If iMultiple = 1 Then
sComment = sComment & sLine
If Left(sLine, 2) = "*/" Then
iMultiple = 0
End If
Else
If Left(sLine, 2) = "//" Then
sComment = sLine
ElseIf Left(sLine, 2) = "/*" Then
sComment = sLine
iMultiple = 1
End If
End If
If iMultiple = 0 And Trim(sComment) <> "" Then
ThisWorkbook.Worksheets(1).Cells(iRow, 1).Value2 = sComment
iRow = iRow + 1
sComment = ""
End If
Wend
Close #iFN
MsgBox "Done!"
End Sub
公共子测试()
将iFN设置为整数
朦胧的细线
整数形式的整数倍
模糊的字符串
Dim iRow作为整数
iFN=FreeFile()
i倍数=0
sComment=“”
iRow=1
'根据需要更改此路径
打开“d:\temp\xl.txt”作为iFN输入
而非EOF(iFN)
sLine=“”
行输入#iFN,sLine
如果immultiple=1,则
sComment=sComment和sLine
如果左(sLine,2)=“*/”则
i倍数=0
如果结束
其他的
如果左(sLine,2)=“/”,则
sComment=sLine
如果左(sLine,2)=“/*”则
sComment=sLine
i倍数=1
如果结束
如果结束
如果immultiple=0且修剪(sComment)“,则
此工作簿.Worksheets(1).Cells(iRow,1).Value2=sComment
iRow=iRow+1
sComment=“”
如果结束
温德
关闭#iFN
MsgBox“完成!”
端接头
这就是python,对吗?没有任何python知识的Excel用户将无法回答您的问题,并且可能需要一段时间才能看到您的问题。如果是,那么还需要添加python标记。否则,请添加任何相关标记。使用ostermiller中的以下行来构建所需的正则表达式:是的,我想通过python脚本将数据转储到excel工作表中。感谢David C.Rankin的建议。但它在python中不起作用,会出现类似“无效表达式”的错误。我相信op需要python的解决方案。非常感谢您的回复。它工作正常,但不符合我的要求。因为我需要在统计实际的c代码之前获取注释行。如果代码之间的注释不应该出现,并且在乞讨中没有注释[在实际开始之前],那么控制器应该出现。。就这些@AnshuSharma更新了代码,只搜索第一条注释,因为没有确切的方法来预测C代码的起始位置。希望这有帮助:-)谢谢@user1492071:,我也这么做了,但是出现了“UnicodeDecodeError:'utf8'编解码器无法解码第18位的字节0xff:无效的开始字节”错误。有什么建议吗???@AnshuSharma,这个错误肯定是因为excel接口模块而抛出的,您没有指定它。您可以通过unicode(var1,errors='ignore')轻松忽略无效字节。
再次感谢@user1492071。我已经将unicode(var1,errors='ignore')添加到这段代码中,但仍然得到相同的错误。还有一个问题,如何指定excel接口模块??。我已经导入了xlsxwriter python包。好吗??