Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Semak sama ada rentetan wujud dalam fail PDF dalam Python

Semak sama ada rentetan wujud dalam fail PDF dalam Python

WBOY
WBOYke hadapan
2023-08-19 17:57:24788semak imbas

Semak sama ada rentetan wujud dalam fail PDF dalam Python

Dalam dunia digital hari ini, fail PDF telah menjadi medium penting untuk menyimpan dan berkongsi maklumat. Walau bagaimanapun, kadangkala sukar untuk mencari rentetan teks tertentu dalam dokumen PDF, terutamanya apabila fail itu panjang atau kompleks. Di sinilah bahasa pengaturcaraan popular Python berguna.

Python menyediakan beberapa perpustakaan yang membolehkan kami berinteraksi dengan fail PDF dan mengekstrak maklumat daripadanya. Tugas biasa ialah mencari rentetan tertentu dalam fail PDF. Ini boleh digunakan untuk pelbagai tujuan seperti analisis data, perlombongan teks atau mendapatkan maklumat.

Dalam konteks ini, kami menghadapi masalah di mana kami ingin menyemak sama ada rentetan tertentu wujud dalam fail PDF. Untuk menyelesaikan masalah ini, kita boleh menggunakan dua kaedah yang berbeza.

Kaedah pertama melibatkan pencarian rentetan terus dalam fail PDF. Kaedah ini menggunakan perpustakaan PDF yang menyediakan keupayaan carian untuk mencari rentetan di seluruh fail PDF. Pustaka ini membaca fail PDF dan menjalankan operasi carian pada kandungan fail. Kaedah ini pantas dan cekap kerana ia tidak memerlukan gelung melalui setiap baris fail PDF.

Kaedah kedua melibatkan lelaran melalui setiap baris fail PDF dan menyemak sama ada rentetan terdapat dalam setiap baris. Kaedah ini melibatkan membuka fail PDF, membacanya baris demi baris dan menyemak setiap baris untuk kehadiran rentetan. Kaedah ini lebih perlahan dan kurang cekap daripada kaedah pertama, tetapi ia boleh berguna dalam situasi tertentu, seperti apabila kita memerlukan kawalan yang lebih baik ke atas proses carian, seperti mengekstrak maklumat khusus daripada fail PDF.

Ringkasnya, kaedah pertama ialah mencari rentetan secara langsung dalam fail PDF, manakala kaedah kedua ialah melingkari setiap baris fail PDF dan menyemak sama ada rentetan itu wujud dalam setiap baris. Memilih kaedah yang hendak digunakan bergantung pada keperluan khusus tugasan yang sedang dijalankan.

Sekarang kita telah membincangkan kaedah yang mencukupi, mari fokus pada menulis kod untuk kaedah pertama.

Kaedah 1

# The string we want to search for
St = 'Shruti'

# Open the PDF file in read mode
with open("example.pdf", "r") as f:
    # Read the entire file into a string variable 'a'
    a = f.read()

    # Check if the string 'St' is present in the file contents
    if St in a:
        # If the string is present, print a message indicating its presence
        print('String '', St, '' Is Found In The PDF File')
    else:
        # If the string is not present, print a message indicating its absence
        print('String '', St, '' Not Found')

# Close the file
f.close()
Terjemahan bahasa Cina bagi

Penjelasan

ialah:

Penjelasan

Dalam kod ini, kami mempunyai rentetan St dan kami ingin mencarinya dalam fail PDF. Kami menggunakan fungsi open() untuk membuka fail PDF dalam mod baca sahaja dan menetapkan fail kepada pembolehubah f. Nama fail 'example.pdf' hendaklah digantikan dengan nama fail yang anda ingin cari.

Seterusnya, kami menggunakan kaedah read() untuk membaca kandungan keseluruhan fail PDF ke dalam pembolehubah rentetan a. Ini akan mencipta rentetan yang mengandungi semua teks dalam fail PDF.

Kemudian, kami menggunakan kata kunci dalam untuk menyemak sama ada rentetan St wujud dalam kandungan fail. Jika rentetan ditemui dalam fail PDF, kami mencetak mesej yang menunjukkan kehadirannya. Jika rentetan tidak ditemui, kami mencetak mesej yang menunjukkan bahawa ia tidak wujud.

Akhir sekali, kami menutup fail menggunakan kaedah close(), melepaskan sebarang sumber sistem yang dikaitkan dengan pemegang fail. Ini adalah langkah penting untuk memastikan kami tidak menyimpan sebarang fail terbuka tanpa perlu, yang boleh menyebabkan masalah pada masa hadapan.

Secara keseluruhan, kod ini menyediakan cara mudah untuk mencari rentetan dalam fail PDF. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah ini mungkin tidak berfungsi dengan betul jika fail PDF mengandungi pemformatan, grafik atau imej yang kompleks, kerana elemen ini mungkin tidak disertakan dalam rentetan yang dikembalikan oleh kaedah read(). Dalam kes ini, mungkin perlu menggunakan perpustakaan PDF khusus untuk mengekstrak teks daripada fail PDF dan mencari rentetan dalam teks yang diekstrak.

Untuk menjalankan kod di atas, kita perlu menjalankan arahan yang ditunjukkan di bawah.

Perintah

python3 main.py

Sebaik sahaja kita menjalankan arahan di atas, kita akan mendapat output berikut dalam terminal.

Output

("String '", 'Shruti', "' Is Found In The PDF File")

Sekarang mari fokus pada kaedah kedua.

Kaedah 2

Untuk menyemak sama ada rentetan wujud dalam fail PDF, kami boleh mencari baris demi baris. Mula-mula, kami membuka fail dan membaca kandungannya, yang disimpan dalam pembolehubah yang dipanggil f. Kami menetapkan kedua-dua pembolehubah baris dan pembilang kepada sifar untuk mengulangi baris demi baris fail.

Menggunakan gelung for, kami melelar melalui setiap baris fail dan menyemak sama ada rentetan itu wujud. Jika rentetan ditemui dalam baris, kami mencetak mesej yang menunjukkan kewujudannya. Akhir sekali, kami menutup fail untuk melepaskan sebarang sumber sistem yang dikaitkan dengan pemegang fail.

Dengan mencari baris demi baris, kami boleh mencari rentetan dalam fail PDF dengan lebih tepat. Walau bagaimanapun, kaedah ini mungkin lebih perlahan daripada mencari keseluruhan fail sekaligus, terutamanya untuk fail PDF yang lebih besar. Selain itu, sebarang pemformatan atau elemen bukan teks lain dalam fail perlu diambil kira, yang mungkin perlu dikendalikan menggunakan perpustakaan PDF khusus.

Pertimbangkan kod yang ditunjukkan di bawah.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

# Define the string to search for
St = 'Shruti'

# Open the PDF file in read mode
f = open("example.pdf", "r")

# Initialize counter variables
c = 0
line = 0

# Loop over each line in the file
for a in f:
    # Increment the line counter
    line = line + 1

    # Check if the string is present in the line
    if St in a:
        # Set the flag variable to indicate the string was found
        c = 1
        # Exit the loop once the string is found
        break

# Check the flag variable to see if the string was found
if c == 0:
    # Print a message indicating the string was not found
    print('String '', St, '' Not Found')
else:
    # Print a message indicating the line number where the string was found
    print('String '', St, '' Is Found In Line', line)

# Close the file to release any system resources associated with the file handle
f.close()
Terjemahan bahasa Cina bagi

Penjelasan

ialah:

Penjelasan

Kod ini mencari rentetan 'Shruti' dalam fail PDF bernama example.pdf. Fail harus berada dalam direktori yang sama dengan skrip Python, atau laluan penuh ke fail perlu ditentukan.

Kami mula-mula menentukan rentetan untuk mencari dan membuka fail PDF dalam mod baca sahaja menggunakan fungsi open(). Objek fail diberikan kepada pembolehubah f.

然后我们初始化两个变量:c是一个标志变量,设置为0,line是一个计数变量,设置为0。

接下来,我们使用for循环来遍历文件中的每一行。对于每一行,我们递增行计数器。然后,我们使用in运算符检查字符串St是否存在于该行中。如果存在,我们将c标志变量设置为1,表示找到了该字符串,并使用break语句跳出循环。

在循环之后,我们检查c标志变量的值。如果它仍然为0,则表示文件中未找到字符串"St",我们打印一条相应的消息。否则,我们使用print()函数打印一条消息,指示找到字符串的行号。

最后,我们使用close()方法关闭文件,释放与文件句柄相关的任何系统资源。

这种方法对于在大型PDF文件中搜索字符串非常有用,因为它允许我们在找到字符串后停止搜索,而不是将整个文件读入内存。然而,需要注意的是,如果PDF文件包含复杂的格式、图形或图像,这种方法可能无法正常工作,因为这些元素可能不会包含在循环返回的行中。在这种情况下,可能需要使用专门的PDF库从PDF文件中提取文本,并在提取的文本中搜索字符串。

要运行上面的代码,我们需要运行下面显示的命令。

命令

python3 main.py

一旦我们运行上述命令,我们将在终端中获得以下输出。

输出

("String '", 'Shruti', "' Is Found In Line", 3727)

结论

总之,Semak sama ada rentetan wujud dalam fail PDF dalam Python可以使用各种方法来实现,这取决于手头任务的要求。

在本教程中,我们讨论了两种检查字符串是否存在于PDF文件中的方法:直接搜索整个PDF文件或逐行搜索。我们还提供了这两种方法的工作示例,以及详细的解释和代码注释。通过理解这些方法,您应该能够使用Python在PDF文件中搜索特定文本,这对于各种应用程序(如数据挖掘、文本提取等)可能是一个有价值的工具。

Atas ialah kandungan terperinci Semak sama ada rentetan wujud dalam fail PDF dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam