def create_and_update_worksheets():
"""
Add 'Player statistics' if the worksheet is not in file_name.
Otherwise, it will update the worksheet itself.
"""
os.chdir(os.path.dirname(os.path.abspath(__file__)))
writer = pd.ExcelWriter(file_name, engine='openpyxl')
row = 0
for item in worksheets['Game Schedule'].values():
multiple_dfs(item, 'Game Schedule')
for sheet in writer.sheets.values():
resize_columns(sheet)
writer.save()
writer.close()
정의,하지만 난 multiple_dfs
을 구현하기로 결정한 경우 나는 몇 가지 오류가 없어 : 내가있어나가서 설명하자면 NameError : 이름이 '작가'가 <code>writer</code> 및 <code>row</code>가 이미 정의되어,
def multiple_dfs(item, sheets):
"""
Put multiple dataframes into one xlsx sheet
"""
response = send_request(item).content
df = pd.read_csv(io.StringIO(response.decode('utf-8')))
df.to_excel(writer, sheets, startrow=row, index=False)
row = row + len(df) + 2
writer
에 대한 오류 다음에, 같은 일이 row
에서 발생했습니다.
Traceback (most recent call last):
File "create_and_update_xlsx_sheets.py", line 66, in <module>
create_and_update_worksheets()
File "create_and_update_xlsx_sheets.py", line 56, in create_and_update_worksheets
multiple_dfs(item, 'Game Schedule')
File "create_and_update_xlsx_sheets.py", line 33, in multiple_dfs
df.to_excel(writer, sheets, startrow=row, index=False)
NameError: name 'writer' is not defined
어떻게 이러한 오류를 해결할 수 있습니까? multiple_dfs
에서 다시 정의하고 싶지는 않지만 향후 함수에서도 재정의해야합니다.
, 당신이 그것을 사용하는 함수에'writer'을 전달할 수 있습니다. 함수가 액세스 할 수없는 변수를 사용하는 것을 어떻게 알 수 있습니까? 'writer '는 처음부터 글로벌 변수가 아닙니다. –
@ cᴏʟᴅs''multiple_dfs (item, sheets, writer, row) '를 의미합니까? 그러한 연습을 피하고 싶습니다. create_and_update_worksheets() 함수에서 전역 변수로'writer'를 정의 할 수 있습니까? 너는 무엇을 제안 하는가? –
왜 피해야 할 다른 것을 선호하는 이유는 무엇입니까? 'global' 변수는 나쁜 습관이고 코드 냄새를 유발합니다. 게다가 함수가 종료되기 직전에 프로그래머가 닫혀 있기 때문에 전역 변수를 사용해서는 안됩니다. –