2017-09-05 10 views
1

私はPython 3.6.1 x86でWindows 10 x64を使用しています。Python 3:urlextractパッケージ、PermissionError

私はこのスクリプトを数ヶ月前から使っていましたが、うまくいきましたが、今は奇妙なエラーです。このスクリプトは、.csvファイルに保存されたつぶやきからURLを抽出する単純なスクリプトです。

これはスクリプトです:私はこれをどのように解釈するか見当がつかない

Traceback (most recent call last): 
    File "C:/Users/Aventinus/url_analysis/url_extractor.py", line 77, in <module> 
    url_extract(twitter_file) 
    File "C:/Users/Aventinus/url_analysis/url_extractor.py", line 50, in url_extract 
    extractor = URLExtract() 
    File "C:\Program Files (x86)\Python36-32\lib\site-packages\urlextract.py", line 65, in __init__ 
    if not self._download_tlds_list(): 
    File "C:\Program Files (x86)\Python36-32\lib\site-packages\urlextract.py", line 114, in _download_tlds_list 
    with open(self._tld_list_path, 'w') as ftld: 
PermissionError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\Python36-32\\lib\\site-packages\\.tlds' 

import datetime 
from urlextract import URLExtract 

twitter_files_list = ['File1.csv', 'File2.csv', 'File3.csv'] 
input_path = my_path 

# Find domain of URL 
def find_domain(url): 
    return url.split("//")[-1].split("/")[0] 

# Clean domain from useless chars 
def clean_domain(domain): 
    domain = domain.replace("[", "") 
    domain = domain.replace("]", "") 
    domain = domain.replace("\'", "") 
    return domain 

# Extract URLs from Tweets 
def url_extract(filename): 

    print('\n' + filename + ':') 

    url_counter = 0 

    url_file = open('extracted_urls/urls_' + filename, 'a') 

    # Open file 
    f = open(input_path + filename, "r", encoding="utf8") 
    lines = f.readlines() 

    # Search for contents of column "text" 
    text = [] 
    for x in lines: 
     text.append(x.split('\t')[4]) 

    # Close file 
    f.close() 

    extractor = URLExtract() 

    for i in range(len(text)): 
     try: 
      if extractor.find_urls(text[i]): # Check if URL exists 
       url = extractor.find_urls(text[i]) 
       domain = find_domain(str(url)) 
       if not " " in domain: 
        url_file.write(str(clean_domain(domain)) + "\n") 
       url_counter += 1 
     except 'Not Found': 
      continue 

    url_file.close() 


# Main 
if __name__ == '__main__': 

    print('\nURL Characterization:\n') 

    # Start timer 
    start = datetime.datetime.now() 

    # Find the unique usernames for every file 
    for twitter_file in twitter_files_list: 
     print('Searching ' + str(twitter_file) + '...') 
     url_extract(twitter_file) 

    # End timer 
    end = datetime.datetime.now() 

    # Print results 
    print("\nProcess finished") 
    print("Total time: " + str(end - start)) 

これは私に、次のエラーが発生します。

答えて

1

あなたは管理者としてスクリプトを実行しようとすることができます

+1

不思議なことに、これは問題を解決しました。私はこれがそうであってはならないように感じるが。ありがとうございました。 – Aventinus

+0

あなたは歓迎です、奇妙なことはいつも起こります –

関連する問題