Python-excel指定セルのデータをtxtに抽出
14611 ワード
2.excelで指定したセルのデータをtxtファイルに抽出して格納する
(1)Openpyxlを使用したload_workbookモジュール
質問:load_workbookは.xlsxファイルしか使用できません..xlsファイルを開くことはできません.xlrdは.xlsxファイルを開くことができます
.xlsxは2003版以上のexcelファイルで使用されています.
.xlsは2003以下のexcelファイルに適用されます.
xlrdモジュールの紹介(https://www.cnblogs.com/insane-Mr-Li/p/9092619.html)
(2)txt文書として格納する場合の3つの方式
リードモード('r')、ライトモード('w')、追加モード('a')
(3)リストを正しく作成する
col1 = []、col1 = [0]*22
(4)excel内のセルの操作方法
(5)python小数点以下の4桁の数字を保持する3つの方法
(6)
複数回のクエリにより、最終的に原因が見つかりました.intを直接反復することはできません.rangeを追加する必要があります.intは反復器関数iter()を使用することはできません.
(7)
質問:pythonの厳密なインデント、強制可読性
(8)
(9)
pythonコード:
転載先:https://www.cnblogs.com/zx-zhang/p/9942640.html
(1)Openpyxlを使用したload_workbookモジュール
質問:load_workbookは.xlsxファイルしか使用できません..xlsファイルを開くことはできません.xlrdは.xlsxファイルを開くことができます
.xlsxは2003版以上のexcelファイルで使用されています.
.xlsは2003以下のexcelファイルに適用されます.
xlrdモジュールの紹介(https://www.cnblogs.com/insane-Mr-Li/p/9092619.html)
(2)txt文書として格納する場合の3つの方式
リードモード('r')、ライトモード('w')、追加モード('a')
(3)リストを正しく作成する
col1 = []、col1 = [0]*22
(4)excel内のセルの操作方法
for index,item in enumerate(sh["C2":"X2"]):
j = 0
if index > 0:
print("
")
for i in item:
print(i.value,end=" ")
col1[j] = i.value
j = j+1
(5)python小数点以下の4桁の数字を保持する3つの方法
1 print(Decimal('cell.value').quantize(Decimal('0.0000')),end=" ") # decimal
2 print('%.4f' %cell.value,end=" ") #
3 round(cell.value,4) #
(6)
TypeError: 'int' object is not iterable
複数回のクエリにより、最終的に原因が見つかりました.intを直接反復することはできません.rangeを追加する必要があります.intは反復器関数iter()を使用することはできません.
1 :n=22;for i in n:
2 :n=22; for i in range(n):
(7)
ValueError : I/O operation on closed file. # I/O
質問:pythonの厳密なインデント、強制可読性
1 :
2 with open("C:\Users\Desktop\matlab\1026\traindata1.txt","a+") as wr:
3 for j in range(n):
4 print(str(col1[j])+','+str(col2[j])+';')
5 wr.write(str(col1[j])+','+str(col2[j])+';')
6 :
7 with open("C:\Users\Desktop\matlab\1026\traindata1.txt","a+") as wr:
8 for j in range(n):
9 print(str(col1[j])+','+str(col2[j])+';')
10 wr.write(str(col1[j])+','+str(col2[j])+';')
(8)
1 TypeError: unsupported operand type(s) for +: 'str' and 'int'
2 :
3 : wr.write(col1[j]+','+col2[j]+';')
4 : wr.write(str(col1[j])+','+str(col2[j])+';')
(9)
IndexError: list assignment index out of range
: list , l list, l[j]
:l = [0]; l[j] = i.value
:l = [0]*22; l[i] = i.value;
pythonコード:
1 from openpyxl import load_workbook
2 from decimal import *
3 import xlrd
4
5 #df = xlrd.open_workbook(r" \1.xlsx") #python ‘\’ , r ‘/’
6 wb = load_workbook(r"C:\Users\Desktop\matlab\b.xlsx")
7 sh = wb["b"]
8 with open("C:\Users\Desktop\matlab\traindata1.txt","a+") as wr:
9 #names = df.sheet_names() # Sheet ,xlrd
10 #print(names)
11
12 col1 = [0] *22
13 col2 = [0] *22 # 22 list,python list
14 n=22
15
16 for index,item in enumerate(sh["C2":"X2"]):
17 j = 0
18 if index > 0:
19 print("
")
20 for i in item:
21 print(i.value,end=" ")
22 col1[j] = i.value
23 j = j+1
24 for index,item in enumerate(sh["C5":"X5"]):
25 j = 0
26 if index >0:
27 print("
")
28 for cell in item:
29 #print(Decimal('cell.value').quantize(Decimal('0.0000')),end=" ") # decimal
30 print('%.4f' %cell.value,end=" ") #
31 col2[j] = round(cell.value,4) #
32 j = j+1
33
34 j = 0
35 for j in range(n):
36 print(str(col1[j])+','+str(col2[j])+';')
37 wr.write(str(col1[j])+','+str(col2[j])+';')
転載先:https://www.cnblogs.com/zx-zhang/p/9942640.html