2017-10-16 13 views
2

나는 내 코드이 코드의 목적은 CSV 파일을 다운로드 (history.csv라고하는) 내가 가져 셀레늄을 사용하여 원래 이름이 파일의 이름을 변경하는 것입니다파이썬 다운로드 및 이름 변경은

에 문제가 웹 페이지 밖에서. 첫 번째 문제는 웹 페이지를로드하는 동안 셀렌 속도 저하입니다. 두 번째 문제는 링크 목록의 첫 번째 2 또는 3 링크를 다운로드하고 이름을 바꾼 후 중단 된 코드입니다. 사용자 \ \ 사예드 \ Anaconda3 \ C python.exe를 :/사용자/사예드/PycharmProjects/여기

은 이벤트 목록을

https://drive.google.com/file/d/0B5bJvxM9TZkhYXZOSnRDVnhTbFk/view?usp=sharing

from selenium import webdriver 
import os 
events = open('events.txt', 'r') 
for event in events: 
    driver = webdriver.Chrome() 
    driver.get(event) 
    download = driver.find_element_by_xpath('//*[@id="fxec_historytable"]/a').click() 

    lname = driver.find_element_by_xpath('//*[@id="fxit-h1title"]') 
    lname = lname.text 
    lname = lname.replace('\n', '') 
    name = str(lname) 
    print(name) 

    path = "C:\\Users\\Sayed\\Downloads" 
    os.chdir(path) 
    print(os.getcwd()) 
    for file in os.listdir(path): 
     fileName, fileExt = os.path.splitext(file) 
     nname = '{}{}'.format(name, fileExt) 
     os.rename(file, nname) 

오류가

C이다 자습서/us.py 서비스 감정 - 유럽 통화 연합 C : \ Users \ Sayed \ 다운로드 ZEW 설문 - 경제 감정 -European Monetary Union C : \ Users \ Sayed \ 다운로드 역 추적 (마지막으로 가장 최근 통화) : 파일 "C : /Users/Sayed/PycharmProjects/Tutorial/us.py", 라인 (21), os.rename에서 (파일, nname이) FileExistsError : [WinError 183] 파일을 만들 수 없습니다하면 해당 파일이 이미 존재하는 경우 : '통화 Union.csv - 유럽 서비스 심리를'-> 'ZEW 조사 - - 유럽 경제 심리를 통화 Union.csv'음 오류가 파이썬에서 발생한된다

+0

이미 이름 –

+0

에 존재하거나 최선의 어떤 파일이 그 이름을 처음 –

+0

폴더에있을 경우 삭제 될 어떤 파일이없는 것을 체크를 추가 비어 –

답변

0

:

Cannot create a file when that file already

exists:

나는 Windows 사용자 아니라고하지만, docs 당, 당신은 replace() 대신 rename() 시도 할 수 있습니다. 그렇게해야/파일을 자동으로 바꿉니다.

+0

추적 (최근 호출 마지막) : 파일 "C : /Users/Sayed/PycharmProjects/Tutorial/us.py", 줄 19, os.replace (파일 이름, 이름) PermissionError : [WinError 5] 액세스가 거부되었습니다 : 'C는 \\ 사용자 \\ 사예드 \\ 다운로드'-> '소비자 물가 지수 -Romania' –

0

나는 당신의 오류를 검색하고 발견이 게시물 오래 된 '동일에 "\ 사용자 \ 사예드 \ 다운로드 C"당신이 폴더에있는 모든 파일의 이름을 변경하기위한 루프를 가지고있는 것처럼

WindowsError: [Error 183] Cannot create a file when that file already exists

가 보이는 이름 ', 맞습니까? 파일이 여러 개 있으면 이름 중복 또는 충돌이 발생할 수 있습니다.

+0

이름이 아닌 문자열 것은 모두가에 대한 이야기 ​​ –

0

name 값이 루프에서 변경되지 않는 것과 같은 모든 파일의 이름을 바꾸려고합니다.

+0

은입니다 변수 그것은 자동으로 이름을 바꿀 수있는 배후의 아이디어 인 변수입니다. 원래 이름이 무엇이든 또는 주어진 이름이 무엇이든간에. –

+0

name은 변수이며 예이지만 루프에 설정되어 있지 않습니다. 따라서 첫 번째 반복에서 값이 "myfile.txt"인 경우 다음 반복에서이 값을 가지며 그 다음과 그 다음에 ...이 계속됩니다. –