Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python can';不要停止显示弃用警告_Python_Python 3.x - Fatal编程技术网

Python can';不要停止显示弃用警告

Python can';不要停止显示弃用警告,python,python-3.x,Python,Python 3.x,我试图从Excel文件中读取值,当我这样做时: for i in range(1, row_num + 1): try: cell_obj = sheet.cell(row = i, column = 1) 我得到以下警告: DeprecationWarning: Call to deprecated function get_squared_range (Use ws.iter_rows()). for row in self.get_squa

我试图从Excel文件中读取值,当我这样做时:

for i in range(1, row_num + 1): 
        try:
            cell_obj = sheet.cell(row = i, column = 1) 
我得到以下警告:

DeprecationWarning: Call to deprecated function get_squared_range (Use ws.iter_rows()).
  for row in self.get_squared_range(column, row, column, row):
我试图实现Python文档中所说的,但它不起作用,或者我没有正确地使用它,我还尝试执行以下操作:

for i in range(1, row_num + 1): 
        try:
            cell_obj = sheet.cell(row = i, column = 1) 
            myList.append((cell_obj).value)   
            warnings.filterwarnings("ignore", category=DeprecationWarning)

但同样,什么也没有发生。有人能解释一下吗?

因为Python是一种迭代语言,所以语句会一个接一个地执行

试着写下下面的语句

警告。过滤器警告(“忽略”,类别=弃用警告)

以前

cell\u obj=sheet.cell(行=i,列=1)


建议在全局空间使用警告过滤器语句,因为局部抑制警告不会反映原始意图。

正如警告所建议的,您可以使用
iter\u rows
方法迭代单元格

下面是使用
iter\u行
存储前五行单元格值的示例

from openpyxl import load_workbook
wb = load_workbook(filename = 'data.xlsx')
sheet = wb['Sheet1']
number_of_rows = sheet.max_row
number_of_columns = sheet.max_column

# Store values from first five rows
rows_iter = sheet.iter_rows(min_col=1, min_row=1,
                            max_col=number_of_columns, max_row=5)
values = [[cell.value for cell in row] for row in rows_iter]
print(values)
输出:

[['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold', 'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts', ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name', 'Year'], ['Government', 'Canada', 'Carretera', 'None', 1618.5, 3, 20, 32370, 0, 32370, 16185, 16185, datetime.datetime(2014, 1, 1, 0, 0), 1, 'January', '2014'], ['Government', 'Germany', 'Carretera', 'None', 1321, 3, 20, 26420, 0, 26420, 13210, 13210, datetime.datetime(2014, 1, 1, 0, 0), 1, 'January', '2014'], ['Midmarket', 'France', 'Carretera', 'None', 2178, 3, 15, 32670, 0, 32670, 21780, 10890, datetime.datetime(2014, 6, 1, 0, 0), 6, 'June', '2014'], ['Midmarket', 'Germany', 'Carretera', 'None', 888, 3, 15, 13320, 0, 13320, 8880, 4440, datetime.datetime(2014, 6, 1, 0, 0), 6, 'June', '2014']]
我使用了as
data.xlsx

已安装的软件包:

et-xmlfile==1.0.1
jdcal==1.4.1
openpyxl==2.6.2
pkg-resources==0.0.0

根据上的讨论,您需要在生成警告的任何代码之前调用它。因此,请将其放在
导入警告
语句下面。我按照您所说的做了,但没有任何更改,警告仍在显示Hi varshith,我尝试了您的建议,但仍然没有任何更改:(我通常建议在任何导入之后,将FilterWarning放在脚本的顶部。这样以后更容易找到,而且它可以覆盖所有内容。是的,“修复”代码似乎是解决这一问题的更好方法,而不仅仅是关闭警告。)message@EugeniaCastilla,我很高兴它成功了。如果答案对你有帮助的话,请向上投票并接受它,以供将来的读者阅读。:)库如何知道代码正在迭代单元格:
cell\u obj=sheet.cell(row=i,column=1)